我有一个目录,其中有多个文件夹,每个文件夹都包含一个 .gz 文件。我怎样才能一次性解压所有这些文件?
我的数据看起来像这样
文件夹列表
A
B
C
D
在每个文件中都有一个文件
A
a.out.gz
B
b.out.gz
C
c.out.gz
D
d.out.gz
答案1
这用于gunzip
解压缩文件夹中的所有文件并以结尾.out.gz
gunzip */*.out.gz
这将“循环”*所有包含压缩文件的文件夹。让我添加一个例子:
A
a.out.gz
B
b.out.gz
C
c.out.gz
D
d.out.gz
E
e.out
使用上面的命令,a.out.gz
b.out.gz
c.out.gz
d.out.gz
将全部解压缩,但它不会触及,e.out
因为它没有压缩。
*这就是所谓的通配或者文件名扩展。您可能想阅读更多相关内容这里。
答案2
find . -type f -name "*.gz" -execdir gunzip {} \;
find 的 execdir 选项会导致“find”到“cd”依次进入每个目录并运行 exec 命令(在本例中为gunzip),然后“cd”回到 cwd