2017年12月11日月曜日

大量のファイル処理

あまプロではシェルスクリプトを作成する場合が有ります。

先日大量のファイルを操作するシェルスクリプトを作成する事が有りましたのであメログ。

 大量の(五万以上)のファイルをワンライナーで変換し様とした際に遭遇したエラー
.hoge.sh: ls: Argument list too long
引数リストが多過ぎますとな!

スクリプト内では
ls -1 *.jpg | 変換コマンド
というコマンドでファイル一覧を取得してたのですが、これがあきませんでした。
ディレクトリ内に多数(五万以上)の画像ファイルが有るので、*.jpgでフィルタして一覧を取得したかったのですが、 どうやら
ls -1 *.jpg
の内部で大量の引数に対応して無いエラーが発生している様です。
xargsを使ってないんかな?

ちなみにフィルタせずに
ls -1
だと大丈夫…何でやねん

仕方ないので
ls -1 | grep .jpg | 変換コマンド
で回避しました。
因みに引数に使用できる最大文字数は
getconf ARG_MAX
で取得出来ます。

0 件のコメント:

コメントを投稿

つっこみ