簡體   English   中英

/ usr / bin / find:循環bash腳本的參數列表過長

[英]/usr/bin/find: Argument list too long in for loop bash script

我有這樣的bash腳本。 我想將一個目錄下的所有.ppm文件gzip 壓縮到另一個目錄。 因此,我編寫了這樣的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 ,並刪除! 因為您要查找擴展名為.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' {} \\; 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM