提取并删除目录中的所有.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 ”(不包括引号)来确定这些命令和参数的作用。 或者,你可以在网上进行研究。