如何解压目录中的一组文件?

如何解压目录中的一组文件?

该目录中有大约 10,000 个文件,其中一些是 .fits,一些是 .tar。现在,我只需解压 .tar 文件。尽管运行 if 条件似乎是合理的,但 untar 命令“xvf”仅适用于每个文件,这无法使用循环。

答案1

untar 命令“xvf”仅适用于每个文件

这利用了循环必要的

for file in ./*.tar; do tar xvf "$file"; done

答案2

实际上,find你可以在没有循环的情况下完成这项工作。像这样:

find -iname '*.tar' -maxdepth 1 -exec tar xvf '{}' \;

逻辑是这样的:

  • -iname匹配具有扩展名的文件.tar(不区分大小写),并且
  • -maxdepth 1将匹配范围限制为深度1(这样./*/*.tar就不会匹配)
  • 最后对匹配的文件-exec执行命令(注意,需要转义;更多信息请参阅)tar xvf;{}find(1)

相关内容