我有这样一个 bash 脚本。我想gzip
一个目录下的所有.ppm 文件到另一个目录。为此我写了这样一个bash脚本:
cd /export/students/sait/12-may
for next_file in $(find . -type f ! -name *.ppm )
do
/bin/gzip -f -c $next_file > /export/students/sait/12-may-yedek/$next_file.gz
done
当我执行这个脚本时,我得到这样的错误:
/usr/bin/find: Argument list too long
我该如何解决这个问题?
最佳答案
引用此部分:*.ppm
以防止文件名通配,并删除 !
因为你想查找带有 .ppm
的文件扩展,而不是相反。
find . -type f -name '*.ppm'
您可以使用单个
find
命令来代替运行循环,这将提供空白安全:
find /export/students/sait/12-may -type f -name '*.ppm' -exec sh -c '/bin/gzip -f -c "$0" > "$0".gz' {} \;
关于linux -/usr/bin/找到 : Argument list too long in for loop bash script,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37241091/