/bin/find:参数列表太长
问题描述:
我是一个初学编程的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
请任何人能不能帮我解决这个问题?
答
通配符(字符串之外)由外壳膨胀,所以在这里/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*