提取并删除目录中的所有.gz – Linux

我有一个目录。 它有大约500K的.gz文件。

我怎样才能提取该目录中的所有.gz并删除.gz文件?

这应该做到这一点:

 gunzip *.gz 

@techedemic是正确的,但缺less'。' 提到当前目录,这个命令遍历所有的子目录。

 find . -name '*.gz' -exec gunzip '{}' \; 

显然有很多方法可以做到这一点。

  # This will find files recursively (you can limit it by using some 'find' parameters. # see the man pages # Final backslash required for exec example to work find . -name '*.gz' -exec gunzip '{}' \; # This will do it only in the current directory for a in *.gz; do gunzip $a; done 

我相信还有其他的方法,但这可能是最简单的。

要删除它,只需在适用的目录中执行rm -rf *.gz

如果你想提取一个文件使用:

gunzip file.gz

它将提取文件并删除.gz文件。

提取当前目录及其子目录下的所有gz文件:

  find . -name "*.gz" | xargs gunzip 
 for foo in *.gz do tar xf "$foo" rm "$foo" done 

尝试:

 ls -1 | grep -E "\.tar\.gz$" | xargs -n 1 tar xvfz 

然后尝试:

 ls -1 | grep -E "\.tar\.gz$" | xargs -n 1 rm 

这将解压当前目录中的所有.tar.gz文件,然后删除所有的.tar.gz文件。 如果你想要一个解释,“|” 在它之前取得命令的标准输出,然后用它作为命令的标准input。 使用“man command ”(不包括引号)来确定这些命令和参数的作用。 或者,你可以在网上进行研究。