読者です 読者をやめる 読者になる 読者になる

tweeeetyのぶろぐ的めも

アウトプットが少なかったダメな自分をアウトプット<br>\(^o^)/

ファイル名の一覧を表示する(find vs ls コマンド)

ファイル名の一覧ってたまーに欲しいときありますよね?
そう、今まさに欲しかったんだけど。。しかも絶対パスで。

lsとかfindのオプションなんだっけなーと思ってぐぐっては忘れるので
そんな自分のためにメモ。

ファイルの構成がこんな感じだったとします

/tmp─dirA┬dirB
          │
          └dirC┬sampleFile1.txt
                ├sampleFile2.txt
                └sampleFile3.txt

lsでのファイル名一覧(パス無し)

ls -1(1行に1ファイルずつ表示)
#ls -1 /tmp/dirA
dirB
dirC
ls -R(ディレクトリ内容を再帰的に表示)
#ls -R /tmp/dirA
/tmp/dirA:
dirB  dirC

/tmp/dirA/dirB:

/tmp/dirA/dirC:
sampleFile1.txt  sampleFile2.txt  sampleFile3.txt
ls -1R
#ls -1R /tmp/dirA
/tmp/dirA:
dirB
dirC

/tmp/dirA/dirB:

/tmp/dirA/dirC:
sampleFile1.txt
sampleFile2.txt
sampleFile3.txt

# cd /tmp/dirA/dirC ; ls -1R                                                                                                          
.:
sampleFile1.txt
sampleFile2.txt
sampleFile3.txt

findでのファイル名一覧(絶対パス付)

find
#find /tmp/dirA
/tmp/dirA
/tmp/dirA/dirB
/tmp/dirA/dirC
/tmp/dirA/dirC/sampleFile3.txt
/tmp/dirA/dirC/sampleFile1.txt
/tmp/dirA/dirC/sampleFile2.txt
find -type f(ファイルのみ)
#find /tmp/dirA -type f
/tmp/dirA/dirC/sampleFile3.txt
/tmp/dirA/dirC/sampleFile1.txt
/tmp/dirA/dirC/sampleFile2.txt

#find /tmp/dirA -type f | sort
/tmp/dirA/dirC/sampleFile1.txt
/tmp/dirA/dirC/sampleFile2.txt
/tmp/dirA/dirC/sampleFile3.txt

ついでですが、lsのオプションで使えそうなのも追記メモ

ls -m(カンマ区切りで表示)
#cd /tmp/dirA/dirC ; ls -m
sampleFile1.txt, sampleFile2.txt, sampleFile3.txt
ls -s(ファイル名の左側に容量をキロ・バイト単位で表示)
#cd /tmp/dirA ; ls -s
合計 8
4 dirB  4 dirC
ls -sh(h:単位などを読みやすい形式で表示)
#cd /tmp/dirA ; ls -sh
合計 8.0K
4.0K dirB  4.0K dirC
ls -sh(h:単位などを読みやすい形式で表示)
#cd /tmp/dirA ; ls -sh
合計 8.0K
4.0K dirB  4.0K dirC
ls -I パターン(パターンにマッチするファイルは表示しない)
#cd /tmp/dirA/dirC ; ls -1
dirD
sampleFile1.txt
sampleFile2.txt
sampleFile3.txt

#cd /tmp/dirA/dirC ; ls -1 -I *3* (3がつくファイルを除く)
dirD
sampleFile1.txt
sampleFile2.txt