UNIXコマンドの ls について。
こういう状況だとしましょう
.(カレントディレクトリ)
├── aaa1.txt
├── aaa2.txt
└── dir1/
├── aaa3.txt
└── dir2/
└── aaa4.txt
基本的な使い方
ls は、カレントディレクトリの直下の中身が一覧表示される(ただし隠しファイルと隠しディレクトリは対象外)。
ls
aaa1.txt aaa2.txt dir1
ls に引数で文字列を与えると、それにヒットしたものだけが出るようになる。
ls aaa1.txt
aaa1.txt
引数は一気に複数与えることができる。
ls aaa1.txt aaa2.txt
aaa1.txt aaa2.txt
ワイルドカードは「マッチしたものが並ぶ」
ワイルドカード(アスタリスク * )は、Bash(シェル)の仕組みによってマッチしたものが全て並ぶと考えるといい。
ls *.txt
ls aaa1.txt aaa2.txt
aaa1.txt aaa2.txt
ディレクトリ名を与えると、その直下の中身が出てくる
ls にディレクトリ名を与えると、そのディレクトリ直下の中身が出てくる。
ls dir1
aaa3.txt dir2
ワイルドカードでディレクトリ名をマッチさせることもできる。
ls di*
ls dir1
aaa3.txt dir2
ワイルドカード単発「 * 」だと全てにマッチする(ただし隠しファイルと隠しディレクトリは対象外)。ファイルはもちろん出てくるし、ディレクトリ名にもマッチするのでその直下の中身も出てくる。
ls *
ls aaa1.txt aaa2.txt dir1
aaa1.txt aaa2.txt
dir1:
aaa3.txt dir2
上記では複数の引数が渡されたため、どのディレクトリの中身か区別するために dir1: というヘッダーが表示されている。
このように ls * は、
- カレントディレクトリの中身は見たい!
- サブディレクトリの中身も見たい!
- サブのサブまでは行かなくていいです
という場面で役立つ。
私は自分のお気に入りのオプションを ls * にくっつけて使うことが多い。
ls -rlth *
-
-r(reverse):ソート順を逆にする -
-l(long):権限・ファイルサイズ・更新日時などの情報を表示する -
-t(time):ファイルを更新日時が新しい順に並べ替える -
-h(human-readable):ファイルサイズを 1K、25M、2G などの読みやすい見た目にする
カレントディレクトリの中身も、各サブディレクトリの中身も、timeとreverseの併用によって古い順にソートされて出てくる。
すると一番新しいファイルがターミナルの下のほう(次のコマンド入力場所のすぐそば)に見えているため、作業しやすい。