gpt4 book ai didi

shell - shell 循环可以解压缩目录中的所有文件吗?

转载 作者:行者123 更新时间:2023-12-04 15:04:52 29 4
gpt4 key购买 nike

我见过解压缩目录中所有 zip 文件的循环。但是,在运行此之前,我宁愿确保我将要运行的内容正常工作:

for i in dir; do cd $i; unzip '*.zip'; rm -rf *.zip; cd ..; done

基本上我希望它查看“dir”的输出,查看所有文件夹,将每个目录 cd 放入其中,解压缩所有 zip 存档,然后删除它们,然后 cd 返回并再次执行,直到没有更多。

这是我应该在单个命令中执行的操作还是应该考虑在 Perl 中执行此操作?

最佳答案

补充一下其他人所说的几点:

  • 如果将参数放在单引号中,例如 '*.zip' ,shell 不会进行通配符扩展,解压缩将尝试处理字面上称为 *.zip 的文件。
  • 请勿使用 -r作为 rm 的参数如果您只想删除单个文件。这只是不必要的危险,因为可能不打算递归删除子目录。
  • 您应该检查 unzip 的返回码并且只有在解压成功时才删除 zip 文件(例如,您可以说 if unzip *.zip; then rm *.zip; fi,甚至使用显式 for 循环来一个一个处理 zip 文件)
  • 关于shell - shell 循环可以解压缩目录中的所有文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2708970/

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