2017-02-16 87 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*