gpt4 book ai didi

bash - 不要压缩已经压缩过的文件

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

我想压缩目录中的一堆文件:

for i in $dir/*; do
if [[ ! "$i" =~ "zip" ]]; then
zip $i
else
echo "$i has already been zipped"
fi
done

如果我用新文件填充目录并再次运行脚本,它将重新压缩所有不包含字符串“zip”的文件。如何跳过那些已解压缩但在同一目录中已有 zip 文件的文件?

例如,脚本不应该再次压缩 testing.log,因为它在同一目录中已经有一个 zip 版本:

testing.log testing.log.zip

更新 - 2018 年 3 月 15 日

感谢您的所有反馈!脚本现在看起来像:

for i in $dir/*.log; do
if [[ ! -f "${i}.zip" ]]; then
zip $i
else
echo "$i has already been zipped"
fi
done

最佳答案

您甚至可以使用字符类通过排除扩展名为 zip 的文件来帮助进行初始文件选择。例如

for i in "$dir"/*.[^z]*; do    ## exclude all files w/ext beginning with 'z'
zip "$i"
done

只是从另一个角度解决问题的另一种方法。

关于bash - 不要压缩已经压缩过的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49294069/

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