У меня есть потенциально большое количество сгенерированных файлов и подкаталогов в каталоге, для которого число не известно до выполнения. Для простоты, скажем, я просто хочу вызвать
mv * /another_dir/.
Но для большого количества файлов и подкаталогов он вернется со страшным «аргументом слишком длинным». Да, я знаю, найти и Xargs это способ справиться с этим. Но я хочу проверить это число на ARG_MAX и попробовать его сначала.
Я нахожусь на Ма c и поэтому не могу поднять настройку ulimit.
Пока что У меня есть
# max_value
if ((expr `getconf ARG_MAX` - `env|wc -c` - `env|wc -l` \* 4 - 2048) ) ; then echo "ok" ; fi
, который предлагает мне значение для проверки.
Допустим, мое значение теста для вычисления количества файлов или подкаталогов в каталоге основано на
# test_value
(find . -maxdepth 1 | wc -l)
Как я могу получить рабочее выражение независимо от того, сколько файлов
if (test_value < max_value ) ; then echo "do this" else echo "do that" ; fi
Каждый раз, когда я пытаюсь создать тест if, синтаксис по какой-то причине терпит неудачу при попытке установить параметры max_value и test_value, а затем проверить их вместе. Благодарен за помощь.