/usr/bin/find: for 循环 bash 脚本中的参数列表太长
/usr/bin/find: Argument list too long in for loop bash script
我有这样一个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
命令来代替 运行 循环,这将提供白色 space 安全性:
find /export/students/sait/12-may -type f -name '*.ppm' -exec sh -c '/bin/gzip -f -c "[=11=]" > "[=11=]".gz' {} \;
我有这样一个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
命令来代替 运行 循环,这将提供白色 space 安全性:
find /export/students/sait/12-may -type f -name '*.ppm' -exec sh -c '/bin/gzip -f -c "[=11=]" > "[=11=]".gz' {} \;