ls コマンドのオプションを解説します。
各オプションを活用することで、様々な情報を確認・取得可能です。
なお、今回オプションを確認した ls コマンドは以下のバージョンです。
$ ls --version
ls (GNU coreutils) 8.22
・ディレクトリ内のファイルを表示
・隠しファイルも含めて表示
・ファイルを縦に並べる
・ファイル名をダブルクォートで囲む
・サイズ・日時などの詳細情報を表示
・更新日時順にファイルを並べる
・ファイルサイズを読みやすく
・ファイルサイズ順に並べる
・ファイル拡張子順に表示
・サブディレクトリの中身も表示
・ファイルの作成時刻を表示
・ファイルの inode 番号を確認
・サブディレクトリだけを表示(おまけ)
ls コマンドでファイル一覧を確認する
何もオプションを指定せずに ls
コマンドを実行すると、
今いるディレクトリ内のファイルを一覧で確認できます。
$ ls
arch ausyscall dracut fugadir hogedir journalctl krb5-config objcopy
隠しファイルも含めて全て表示する
隠しファイルも含めて表示する場合は ls -a
を実行します。
カレントディレクトリ・親ディレクトリの情報が不要な場合は ls -A
がオススメです。
$ ls -A
.hidden arch ausyscall dracut fugadir hogedir journalctl krb5-config objcopy
ls で縦表示を利用する
ファイル一覧を縦に並べたい場合は、ls -1
を実行します。
シェルスクリプト・エクセルなどへコピーするシーンで便利に使えます。
$ ls -1
arch
ausyscall
dracut
fugadir
hogedir
journalctl
krb5-config
objcopy
ファイル名をダブルクォートで囲む
-Q
を使うと、ファイル名をダブルクォートで囲んで出力します。
シェルスクリプトや別ファイルに転記する場面で活躍するオプションです。
$ ls -1Q
"arch"
"ausyscall"
"dracut"
"fugadir"
"hogedir"
"journalctl"
"krb5-config"
"objcopy"
サイズ・日時などの詳細情報を表示する
ファイルの詳細を確認したい場合は ls -l
を使います。
Linux コマンドの中でも使用頻度が高い有名なコマンドです。
$ ls -l
-rwxr-xr-x. 1 user01 user01 33168 10月 31 2018 arch
-rwxr-xr-x. 1 user01 user01 11448 10月 31 2018 ausyscall
-rwxr-xr-x. 1 user01 user01 56986 11月 3 2018 dracut
drwxrwxr-x. 2 user01 user01 6 5月 18 22:42 fugadir
drwxr-xr-x. 2 user01 user01 6 5月 18 22:41 hogedir
-rwxr-xr-x. 1 user01 user01 550880 1月 30 02:56 journalctl
-rwxr-xr-x. 1 user01 user01 7123 1月 30 02:32 krb5-config
-rwxr-xr-x. 1 user01 user01 232872 10月 30 2018 objcopy
ls で更新日時順にファイルを並べる
ファイルを更新日時順にソートする場合は ls -lt
です。
上に行くほど新しく、下に行くほど古いファイルが並びます。
$ ls -lt
drwxrwxr-x. 2 user01 user01 6 5月 18 22:42 fugadir
drwxr-xr-x. 2 user01 user01 6 5月 18 22:41 hogedir
-rwxr-xr-x. 1 user01 user01 550880 1月 30 02:56 journalctl
-rwxr-xr-x. 1 user01 user01 7123 1月 30 02:32 krb5-config
-rwxr-xr-x. 1 user01 user01 56986 11月 3 2018 dracut
-rwxr-xr-x. 1 user01 user01 11448 10月 31 2018 ausyscall
-rwxr-xr-x. 1 user01 user01 33168 10月 31 2018 arch
-rwxr-xr-x. 1 user01 user01 232872 10月 30 2018 objcopy
逆に、古いファイルを上に・新しいファイルを下にしたい場合は、
ls -ltr
コマンドで並べ替え可能です。
$ ls -ltr
-rwxr-xr-x. 1 user01 user01 232872 10月 30 2018 objcopy
-rwxr-xr-x. 1 user01 user01 33168 10月 31 2018 arch
-rwxr-xr-x. 1 user01 user01 11448 10月 31 2018 ausyscall
-rwxr-xr-x. 1 user01 user01 56986 11月 3 2018 dracut
-rwxr-xr-x. 1 user01 user01 7123 1月 30 02:32 krb5-config
-rwxr-xr-x. 1 user01 user01 550880 1月 30 02:56 journalctl
drwxr-xr-x. 2 user01 user01 6 5月 18 22:41 hogedir
drwxrwxr-x. 2 user01 user01 6 5月 18 22:42 fugadir
ファイルサイズを読みやすくする
ls -lh
コマンドを使用すると、
サイズをバイト単位ではなくキロバイトやメガバイト単位で表示してくれます。
$ ls -lh
-rwxr-xr-x. 1 user01 user01 33K 10月 31 2018 arch
-rwxr-xr-x. 1 user01 user01 12K 10月 31 2018 ausyscall
-rwxr-xr-x. 1 user01 user01 56K 11月 3 2018 dracut
drwxrwxr-x. 2 user01 user01 6 5月 18 22:42 fugadir
drwxr-xr-x. 2 user01 user01 6 5月 18 22:41 hogedir
-rwxr-xr-x. 1 user01 user01 538K 1月 30 02:56 journalctl
-rwxr-xr-x. 1 user01 user01 7.0K 1月 30 02:32 krb5-config
-rwxr-xr-x. 1 user01 user01 228K 10月 30 2018 objcopy
ファイルサイズの順に並べる
ls -lS
コマンドを実行すると、ファイルサイズが大きな順に並びます。
大きなファイルが上に、小さなファイルが上に表示されます。
$ ls -lS
-rwxr-xr-x. 1 user01 user01 550880 1月 30 02:56 journalctl
-rwxr-xr-x. 1 user01 user01 232872 10月 30 2018 objcopy
-rwxr-xr-x. 1 user01 user01 56986 11月 3 2018 dracut
-rwxr-xr-x. 1 user01 user01 33168 10月 31 2018 arch
-rwxr-xr-x. 1 user01 user01 11448 10月 31 2018 ausyscall
-rwxr-xr-x. 1 user01 user01 7123 1月 30 02:32 krb5-config
drwxrwxr-x. 2 user01 user01 6 5月 18 22:42 fugadir
drwxr-xr-x. 2 user01 user01 6 5月 18 22:41 hogedir
表示順を逆にしたい場合は、-r
オプションを利用します。
ls -lSr
で、ファイルサイズの小さな順にソートされます。
$ ls -lSr
drwxr-xr-x. 2 user01 user01 6 5月 18 22:41 hogedir
drwxrwxr-x. 2 user01 user01 6 5月 18 22:42 fugadir
-rwxr-xr-x. 1 user01 user01 7123 1月 30 02:32 krb5-config
-rwxr-xr-x. 1 user01 user01 11448 10月 31 2018 ausyscall
-rwxr-xr-x. 1 user01 user01 33168 10月 31 2018 arch
-rwxr-xr-x. 1 user01 user01 56986 11月 3 2018 dracut
-rwxr-xr-x. 1 user01 user01 232872 10月 30 2018 objcopy
-rwxr-xr-x. 1 user01 user01 550880 1月 30 02:56 journalctl
ls で拡張子順に表示する
-X
オプションを指定することで、拡張子順に並べることができます。
以下の例では ls -lX
コマンドを実行しています。
$ ls -lX
-rw-rw-r--. 1 user01 user01 537 1月 27 23:26 webpack.mix.js
-rw-rw-r--. 1 user01 user01 1631 2月 24 17:34 composer.json
-rw-rw-r--. 1 user01 user01 1125 1月 27 23:26 package.json
-rw-rw-r--. 1 user01 user01 1695 4月 13 01:55 readme.md
-rw-rw-r--. 1 user01 user01 563 1月 27 23:26 manual.md
-rw-rw-r--. 1 user01 user01 1138 1月 27 23:26 phpunit.xml
サブディレクトリの中身も表示する
サブディレクトリのファイルも同時に確認する場合は、-R
を使用します。
複数のディレクトリがあれば全て表示されます。
$ ls -lR
.:
-rwxr-xr-x. 1 user01 user01 33168 10月 31 2018 arch
-rwxr-xr-x. 1 user01 user01 11448 10月 31 2018 ausyscall
-rwxr-xr-x. 1 user01 user01 56986 11月 3 2018 dracut
drwxrwxr-x. 2 user01 user01 24 5月 18 23:21 fugadir
drwxr-xr-x. 2 user01 user01 42 5月 18 23:20 hogedir
-rwxr-xr-x. 1 user01 user01 550880 1月 30 02:56 journalctl
-rwxr-xr-x. 1 user01 user01 7123 1月 30 02:32 krb5-config
-rwxr-xr-x. 1 user01 user01 232872 10月 30 2018 objcopy
./fugadir:
-rw-rw-r--. 1 user01 user01 0 5月 18 23:21 fugafile01
./hogedir:
-rw-rw-r--. 1 user01 user01 0 5月 18 23:20 hogefile01
-rw-rw-r--. 1 user01 user01 0 5月 18 23:20 hogefile02
ls でファイルの作成時刻を表示する
--full-time
オプションでは、ファイルの作成時刻を絶対表記で出力します。
正確な時刻を秒単位まで確認することが可能です。
$ ls --full-time
合計 880
-rwxr-xr-x. 1 user01 user01 33168 2018-10-31 04:16:01.000000000 +0900 arch
-rwxr-xr-x. 1 user01 user01 11448 2018-10-31 05:42:55.000000000 +0900 ausyscall
-rwxr-xr-x. 1 user01 user01 56986 2018-11-03 02:40:52.000000000 +0900 dracut
drwxrwxr-x. 2 user01 user01 24 2019-05-18 23:21:13.658409249 +0900 fugadir
drwxr-xr-x. 2 user01 user01 42 2019-05-18 23:20:56.453023353 +0900 hogedir
-rwxr-xr-x. 1 user01 user01 550880 2019-01-30 02:56:52.000000000 +0900 journalctl
-rwxr-xr-x. 1 user01 user01 7123 2019-01-30 02:32:24.000000000 +0900 krb5-config
-rwxr-xr-x. 1 user01 user01 232872 2018-10-30 18:55:44.000000000 +0900 objcopy
ファイルの inode 番号を確認する
-i
オプションを利用すると、inode(アイノード) 番号を確認できます。
ファイルの属性情報を管理するために、ファイルシステム内部で使われている番号です。
$ ls -li
合計 880
17997702 -rwxr-xr-x. 1 user01 user01 33168 10月 31 2018 arch
17997703 -rwxr-xr-x. 1 user01 user01 11448 10月 31 2018 ausyscall
17255639 -rwxr-xr-x. 1 user01 user01 56986 11月 3 2018 dracut
737547 drwxrwxr-x. 2 user01 user01 24 5月 18 23:21 fugadir
52072419 drwxr-xr-x. 2 user01 user01 42 5月 18 23:20 hogedir
17255686 -rwxr-xr-x. 1 user01 user01 550880 1月 30 02:56 journalctl
17255688 -rwxr-xr-x. 1 user01 user01 7123 1月 30 02:32 krb5-config
17255738 -rwxr-xr-x. 1 user01 user01 232872 10月 30 2018 objcopy
サブディレクトリだけを表示する(おまけ)
同じディレクトリ内に存在するサブディレクトリだけを表示する方法です。
ls
コマンドだけでは実現できないため、grep
を組み合わせて実現します。
$ ls -l | grep ^d
drwxrwxr-x. 2 user01 user01 24 5月 18 23:21 fugadir
drwxr-xr-x. 2 user01 user01 42 5月 18 23:20 hogedir
まとめ
ls コマンドの様々なオプションを紹介しました。
オプションを活用することで、必要な情報を簡単に取得できます。
基本的なオプションは ls --help
で確認できますが、
よく使うオプションは頭に入れておくことをオススメします。
【関連記事】
⇒ curl コマンドのオプション解説
⇒ jq コマンドで JSON を加工する
⇒ jq コマンド応用編
⇒ MySQL のクエリ結果を整形する
⇒ Apache アクセスログの解析コマンド
⇒ CentOS が重いときの確認コマンド
⇒ CentOS のサービス一覧を確認する
⇒ file, strings, zipinfo でファイルを調査する