gpt4 book ai didi

linux - 将子文件夹中的 .gz 文件(递归地)解压到根文件夹中

转载 作者:太空宇宙 更新时间:2023-11-04 13:01:58 24 4
gpt4 key购买 nike

情况如下:我有一个文件夹,包含很多子文件夹,其中一些包含 .gz 压缩文件(不是 tar,只是压缩文本文件)。我想以递归方式将所有这些 .gz 文件解压到根文件夹中,但我不知 Prop 体的解压方法。

我有这样的文件夹:/folderX/subfolder1/file.gz

通过使用

gzip -c -d -r *.gz

我可能可以一次提取所有文件,但它们将保留在各自的子文件夹中。我希望它们都在/folderX/中

find -name *.gz

为我提供了我要查找的文件的正确列表,但我不知道如何组合这 2 个命令。我应该在脚本中组合这些命令吗?或者是否有我错过的 gzip 功能允许解压缩您正在执行命令的文件夹中的所有内容?

感谢您的帮助!

最佳答案

您可以使用 while..done 循环来迭代输入:

find dirname -name *.gz|while read i; do gzip -c -d -r $i; done

您还可以使用 xargs,它的额外好处是可以处理参数 -0 的文件名中的空格 (""):

find dirname -name '*.gz' -print0 | xargs -0 -L 1 gzip -c -d -r

“-print0”输出找到的所有文件,以 NULL 字符分隔。 xargs 的 -0 开关重建解析 NULL 字符的列表并将“gzip ...”命令应用于它们中的每一个。注意“-L 1”参数,它告诉 xargs 一次只将一个文件传递给 gzip。

关于linux - 将子文件夹中的 .gz 文件(递归地)解压到根文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33654026/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com