2017-02-10 20 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 

bashで処理できるファイル数には制限がありますか?

+3

さらに読む:http://www.linuxjournal.com/article/6060 –

+0

@ChrisMaesの素晴らしいリンク共有コミュニティと情報を共有してくれてありがとう –

答えて

5

制限は、引数の数字ではなく、コマンドラインと環境を合わせた長さです。 (これは、環境内の文字列が多いほど、コマンドラインの長さが短くなることを意味します)。この制限は、特定のコマンドではなくオペレーティングシステム固有の制限です。この問題を回避するには、findを使用してコマンドを繰り返し呼び出します。ここで

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

gunzipは、できるだけ多くの引数で呼び出され、一致するすべてのファイルが解凍されているまで繰り返し。

関連する問題