ファイルが多すぎる時にlsとかすると

1
2
$ ls -l *.jpg
-bash: /bin/ls: Argument list too long

とかなっちゃった時に、lsfindに置き換えるための対応表のメモです

ls

-maxdepthを外すと再帰的になります

1
2
3
4
5
6
7
8
9
10
11
// カレントディレクトリのファイル一覧
$ ls -l .
$ find . -maxdepth 1

// カレントディレクトリのjpgファイル一覧
$ ls -l ./*.jpg
$ find . -maxdepth 1 -name "*.jpg"

// カレントディレクトリのディレクトリ一覧
$ ls -l | grep -E ^d
$ find . -type d -maxdepth 1

xargsと組み合わせる時は、-IXXXXでファイル名を好きな位置に入れれます

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// カレントディレクトリのjpgファイル一覧
$ find . -maxdepth 1 -name "*.jpg" | xargs -IXXXX echo XXXX
1.jpg
2.jpg
3.jpg

// カレントディレクトリのjpgファイルに前0をつける
$ find . -maxdepth 1 -name "*.jpg" | xargs -IXXXX echo 00XXXX
001.jpg
002.jpg
003.jpg

// カレントディレクトリのjpgファイルを/var/tmpに移動させる
$ find . -maxdepth 1 -name "*.jpg" | xargs -IXXXX mv XXXX /var/tmp/

その他