ls コマンド

目次

概要

ls - ファイル一覧を表示する

コマンドライン

ls [OPTION]... [FILE]...

対象バージョン

説明

基本的な使い方

ls コマンドは list の略で、ファイルの一覧を表示します。

$ ls
dirA  dirB  fileA.txt  fileB.txt

引数にディレクトリ名やファイル名を指定すると、指定したディレクトリやファイルに関する情報を表示します。

$ ls fileA.txt fileB.txt
fileA.txt  fileB.txt

*? などのワイルドカードも使用できます。

$ ls file*.txt
fileA.txt  fileB.txt

ロングフォーマット(-l)

-l オプションを指定するとロングフォーマットで詳細を表示します。

$ ls -l
total 16
drwxr-xr-x 2 yamada yamada 4096 Jul 13 12:37 dirA
drwxr-xr-x 2 yamada yamada 4096 Jul 13 12:38 dirB
-rw-r--r-- 1 yamada yamada   19 Jul 13 12:35 fileA.txt
-rw-r--r-- 1 yamada yamada   19 Jul 13 12:36 fileB.txt

隠しファイルも表示する(-a, -A)

.bashrc などドット(.) で始まるファイル名は隠しファイルとして通常の ls コマンドでは表示されませんが、-a オプションを指定すると隠しファイルも表示します。

$ ls -a
.   .bash_history  .bash_profile  .zprofile  dirA  fileA.txt
..  .bash_logout   .bashrc        .zshrc     dirB  fileB.txt

-A を指定するとカレントディレクトリ(.) と親ディレクトリ(..)を除いた全ファイルを表示します。

$ ls -A
.bash_history  .bash_profile  .zprofile  dirA  fileA.txt
.bash_logout   .bashrc        .zshrc     dirB  fileB.txt

ファイルタイプを表示する(-F)

-F オプションを指定するとファイル名の末尾にファイルタイプを示す記号が表示されます。

$ ls -F
cmd.sh  dirA  fileA.txt  myfifo  mysock  bin
$ ls -F
cmd.sh*  dirA/  fileA.txt  myfifo|  mysock=  bin@

それぞれの意味は下記となります。

1ファイル1行でファイル名のみ表示する(-1)

-1 オプションはファイル名のみを1ファイル1行で表示します。

$ ls -1
dirA
dirB
fileA.txt
fileB.txt

ディレクトリ自身の情報を表示する(-d)

引数にディレクトリ名を指定すると通常は指定したディレクトリの中身を表示しますが、-d オプションをつけるとディレクトリ自体の情報を表示します。

$ ls -l dirA
total 8
-rw-r--r-- 1 yamada yamada 19 Jul 13 12:35 fileC.txt
-rw-r--r-- 1 yamada yamada 19 Jul 13 12:35 fileD.txt
$ ls -ld dirA
drwxr-xr-x 2 yamada yamada 4096 Jul 13 12:35 dirA

更新時刻でソートする(-t)

-t オプションをつけると更新時刻でソートして表示します。

$ ls -lt
total 16
-rw-r--r-- 1 yamada yamada   19 Jul 13 12:35 fileA.txt
-rw-r--r-- 1 yamada yamada   19 Jul 13 12:36 fileB.txt
drwxr-xr-x 2 yamada yamada 4096 Jul 13 12:37 dirA
drwxr-xr-x 2 yamada yamada 4096 Jul 13 12:38 dirB

-r オプションを追加すると逆順にソートします。

$ ls -ltr
total 16
drwxr-xr-x 2 yamada yamada 4096 Jul 13 12:38 dirB
drwxr-xr-x 2 yamada yamada 4096 Jul 13 12:37 dirA
-rw-r--r-- 1 yamada yamada   19 Jul 13 12:36 fileB.txt
-rw-r--r-- 1 yamada yamada   19 Jul 13 12:35 fileA.txt

オプション

ロングフォーマット

-l
ロングフォーマットで表示します。詳細は ロングフォーマット を参照してください。
-g
-l オプション同様ロングフォーマットで表示しますが、ファイルの所有者情報を表示しません。
-o
-l オプション同様ロングフォーマットで表示しますが、ファイルのグループ情報を表示しません。
-G, --no-group
-l オプション指定時、ファイルのグループ情報を表示しません。
--author
-l オプション指定時、所有者に加えて作成者の情報を表示します。ext4 などファイルの所有者と作成者の両方の情報を保持するファイルシステムで有効です。

カラムモード

-C
-l-1 オプションが指定されている場合でもカラムモードで横方向に表示します。
-x
横方向に改行なく表示します。
-w, --width=COLS
カラムモード表示の1行の横幅を文字数で指定します。0 を指定すると制限なく表示します。
-T, --tabsize=COLS
カラムモードのタブストップの文字数を指定します。ターミナルによっては思い通りの結果にならないことがあります。

表示フォーマット

-1
1ファイル1行で表示します。
-m
ファイル名をカンマ(,)区切りで表示します。
--Q, --quote-name
ファイル名をすべてダブルクォート("...")で囲んで表示します。
-D, --dired
Emacs の dired モードに適したフォーマットで表示します。
--format=MODE
表示フォーマットを指定します。MODE には across(-x と同等)、commas(-m と同等)、horizontal(-x と同等)、long(-l と同等)、single-column(-1 と同等)、verbose(-l と同等)、vertical(-C と同等) のいずれかを指定します。例えば --format=long-l と同じ動作となります。

隠しファイル

-a, --all
ドット(.)で始まる隠しファイルも表示します。. や .. も表示します。
-A, --almost-all
ドット(.)で始まる隠しファイルも表示します。. や .. は表示しません。

表示除外

--hide=PATTERN
PATTERN で指定したファイルを表示しません。例えば --hide=*.old と指定した場合、.old の拡張子を持つファイルは表示しません。
-I, --ignore=PATTERN
--hide と似ていますが、--hide の指定は -a-A で無効化されるのに対して、--igunore の指定は -a-A でも無効化されません。
-B, --ignore-backups
Emacs が作成するバックアップファイルのような、末尾が ~ で終わるファイル名を表示しないようにします。

ソート

-r, --reverse
ソートの方向を逆方向にします。
-t
時刻でソートします。
-c
最終変更時刻(ctime)でソートします。-lt オプションと共に指定した場合 ctime を表示し、ctime でソートします。-l オプションと共に指定した場合 ctime を表示しますが、ソートはファイル名でソートします。-c オプションのみを指定した場合 ctime でソートしますが、ctime は表示しません。
-u
最終アクセス時刻(atime)でソートします。-lt オプションと共に指定した場合 atime を表示し、atime でソートします。-l オプションと共に指定した場合 atime を表示しますが、ソートはファイル名でソートします。-u オプションのみを指定した場合 atime でソートしますが、atime は表示しません。
-S
ファイルサイズでソートします。
-X
ファイルを拡張子のアルファベット順でソートします。
-v
ファイル名に含まれる数字が 1, 2, ..., 10, 11, ... 20, 21, ... となるようにソートします。
-f
ソートしません。-a オプションが追加され、-l-s--color オプションが除去されます。
-U
ソートしません。他のオプションの追加や除去は行われません。
--group-directories-first
ファイル名より先にディレクトリ名を表示します。
--sort=WORD
ソートキーを指定します。WORD には none (-U と同様)、size (-S と同様)、time (-t と同様)、version (-v と同様)、extension (-X と同様), width (ファイル名の文字数) のいずれかを指定します。

時刻情報

--full-time
-l オプションと似ていますが、時刻情報を詳細に表示します。-l --time-style=full-iso と同じ意味を持ちます。
--time=WORD
-l オプションと共に指定した場合は時刻に何を表示するか、--sort=time オプションと共に指定した場合はどの時刻でソートするかを指定します。WORD には atime (アクセス時刻)、ctime (変更時刻)、mtime (ファイル内容変更時刻)、birth (作成時刻) のいずれかを指定します。birth はファイルシステムが作成時刻の保持をサポートしている場合のみ有効です。
--time-style=TIME_STYLE
時刻の表示形式を指定します。TIME_STYLE には full-iso(YYYY-MM-DD HH:MM:SS.UUUUUUUUU)、long-iso(YYYY-MM-DD HH:MM)、iso(MM-DD HH:MM)、locale (ロケール依存)、または date コマンドの +FORMAT で指定するフォーマット文字列を指定できます。

ファイルサイズ

-h, --human-readable
-l-s で表示するファイルサイズを 3.5K のような人間が読みやすいフォーマットで表示します。
--si
-h と似ていますが、1024 の倍数ではなく 1000 の倍数で表示します。
--block-size=SIZE
-l オプションで表示されるファイルサイズの単位を指定します。SIZE には K(キロ)、M(メガ)、G(ギガ) など、または、KB(キロバイト)、MB(メガバイト)、GB(ギガバイト) などを指定します。B(バイト) をつけた場合は 1,000 の倍数、つけない場合は 1,024 の倍数とみなします。
-s, --size
ブロックサイズ単位のファイルサイズを付加して表示します。
-k, --kibibytes
-s オプションで表示するブロックサイズを 1024バイトブロックとします。

ディレクトリ

-d
引数にディレクトリを指定した場合、ディレクトリの中身ではなく、ディレクトリ自身の情報を表示します。
-H, --dereference-command-line
引数にシンボリックリンクファイルを指定した場合、通常はシンボリックリンクファイル自体の情報を表示しますが、-H を指定するとシンボリックリンク先の情報を表示します。
--dereference-command-line-symlink-to-dir
-H と似ていますが、引数で指定したファイルがディレクトリに対するシンボリックリンクファイルの場合のみ、シンボリックリンク先の情報を表示します。
-L, --dereference
-H と似ていますが、-H が指定したフォルダ内のすべてのファイルに対してもシンボリックリンク先の情報を表示するのに対し、-L は引数で直接指定したファイルのみ、シンボリックリンク先の情報を表示します。

ファイルタイプ

-F, --classify
ファイル名の末尾にファイルタイプを示す記号を表示 *(実行ファイル)、/(ディレクトリ)、@(シンボリックリンクファイル)、|(FIFOパイプファイル)、=(ソケットファイル) を表示します。
--file-type
-F オプションとほぼ同様ですが、*(実行ファイル)の記号を表示しません。
-p, --indicator-style=slash
-F オプションと似ていますが、/(ディレクトリ) のみ表示します。
--indicator-style=STYLE
ファイルタイプを表示します。STYLE には none (指定なし)、slash (-p と同等)、file-type (--file-type と同等)、classify (-F と同等)のいずれかを指定します。

制御文字

-b, --escape
表示できない文字をC言語スタイルのエスケープ文字(タブ文字は \t など)で表示します。
-N, --literal
特殊文字を含むファイル名は通常シングルクォート('...')で囲まれて表示されますが、-N オプションを指定すると囲まずに表示します。
-q, --hide-control-chars
ls の実行結果をファイルにリダイレクトしたりパイプで他コマンドに渡す場合、タブ文字などの特殊文字を ? に置き換えて出力します。
--show-control-chars
ls の実行結果をファイルにリダイレクトしたりパイプで他コマンドに渡す場合、タブ文字などの特殊文字をそのまま出力します。
--quoting-style=WORD
特殊文字の表示方法を指定します。WORD には literal (-N と同等)、locale (ロケールに応じたクォートで囲む)、shell (必要に応じてシェル形式)、shell-always (常にシェル形式)、shell-escape (必要に応じて $'...' 形式)、shell-escape-always (常に $'...' 形式)、c (-Q と同等)、escape (-b と同等) のいずれかを指定します。

ヘルプ

--help
ヘルプを表示します。
--version
バージョン情報を表示します。

その他

-R, --recursive
フォルダを再帰的に手繰り、孫ファイルやひ孫ファイルなど、ディレクトリ配下のファイルをすべて表示します。
--color=MODE
--color=never を指定するとモノクロモード、--color=auto を指定するとカラーモードで表示します。カラーモードの色は環境変数 LS_COLORS で細かく指定することができます。
-i, --inode
ファイルに対して一意に割り振られる iノード番号を表示します。
-n, --numeric-uid-gid
所有者やグループをユーザー名やグループ名ではなく、ユーザーIDやグループIDで表示します。
-Z, --context
セキュリティコンテキストを表示します。詳細は SELinux を参照してください。
----hyperlink=MODE
ファイル名をハイパーリンクで表示します。MODE には always(常に)、auto(自動)、never(否) のいずれかを指定します。ターミナルがサポートしている場合、ハイパーリンクをクリックするとそのファイルを開きます。
--zero
各ファイル名の末尾に NUL 文字を付加して出力します。