2017-02-10 3 views
-1

У меня есть ~ 5k файлов, которые я хочу разархивировать.bash - слишком много аргументов

2:13:35 2017-01-16 $ unpigz *.gz 
-bash: /usr/local/bin/unpigz: Argument list too long 
12:13:40 2017-01-16 $ unpigz -r *.gz 
-bash: /usr/local/bin/unpigz: Argument list too long 
12:15:45 2017-01-16 $ gunzip *.gz 
-bash: /usr/bin/gunzip: Argument list too long 
12:17:56 2017-01-16 $ cp *.gz ~/Desktop/ 
-bash: /bin/cp: Argument list too long 

0 Количество наград: 0 Количество загрузок: 0

+3

для дальнейшего прочтения: http://www.linuxjournal.com/article/6060 –

+0

отличная ссылка на ссылку от @ChrisMaes благодарит за передачу информации об этом сообществе –

ответ

5

Предел не на номер аргументов, но и на объединенную длину командной строки и среды. (Неформально это означает, что в вашей среде больше строк, тем короче может быть командная строка.) Это ограничение относится только к операционной системе, а не к какой-либо конкретной команде. Чтобы обойти это, используйте команду find для повторного вызова вашей команды.

find . -prune -name '*.gz' -exec gunzip {} + 

Здесь gunzip будет называться с таким количеством аргументов, как это возможно, и несколько раз, пока все соответствующие файлы не были распакованы.

Смежные вопросы