2017-02-16 309 views
0

我是一個初學編程的shell腳本,現在我正在做一個shell腳本來根據路徑中最後修改的目錄來創建zip文件。當日期爲:/bin/find:參數列表太長

今天= date +%Y-%m-%d

客戶= find /DOMINOAPP/Delta_Transfer/*/* -type d -name "*" -newermt $today | cut -d "/" -f4

我得到這個錯誤:

./zips.sh: line 8: /bin/find: Argument list too long

請任何人能不能幫我解決這個問題?

回答

0

通配符(字符串之外)由外殼膨脹,所以在這裏/DOMINOAPP/Delta_Transfer/*/*第一由外殼膨脹,然後傳遞給find。如果它包含很多文件,那麼列表將會超長,並且會出現該錯誤。

find已經進入所有子目錄,這樣你就可以刪除這些通配符:

find /DOMINOAPP/Delta_Transfer -type d -name "*" -newermt $today 

爲了更好地理解由外殼通配符擴展,比較以下命令:

$ touch a1 a2 a3 
$ echo a* # <-- expansion, = 'echo a1 a2 a3' 
a1 a2 a3 
$ echo "a*" # <-- no expansion, = 'echo a*' 
a*