2017-02-16 2 views
0

Я начинаю программировать скрипты оболочки, прямо сейчас я делаю сценарий оболочки для создания 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

Wildcards (за пределами строк) разлагаются оболочкой, так что здесь /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* 
Смежные вопросы