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

时间:2013-04-16 13:15:14

标签: linux gzip extract gunzip

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

如何在该目录中提取所有.gz并删除.gz文件?

7 个答案:

答案 0 :(得分:156)

这应该这样做:

gunzip *.gz

答案 1 :(得分:19)

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

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

答案 2 :(得分:17)

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

    # 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

答案 3 :(得分:3)

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

 find . -name "*.gz" | xargs gunzip 

答案 4 :(得分:3)

如果要提取单个文件,请使用:

gunzip file.gz

它将解压缩文件并删除.gz文件。

答案 5 :(得分:1)

for foo in *.gz
do
  tar xf "$foo"
  rm "$foo"
done

答案 6 :(得分:0)

尝试:

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文件。如果你想要解释,“|”在它之前获取命令的stdout,并将其用作之后命令的stdin。使用带有引号的“man command ”来确定这些命令和参数的作用。或者,您可以在线研究。