ls コマンド
目次
概要
ls - ファイルやディレクトリの一覧を表示するコマンドライン
ls [OPTION]... [FILE]...
対象バージョン
- RHEL 10 : GNU ls 9.5
- Ubuntu 24.04 : GNU ls 9.4
説明
基本的な使い方
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
- 最初の
totalは表示されたファイルやディレクトリが使用しているディスクのブロック数を示します。 - 各行先頭の1文字は、ファイルの種類を示します。
-: 通常ファイルd: ディレクトリl: シンボリックリンクファイルs: ソケットファイルp: FIFOパイプファイルc: キャラクタデバイスb: ブロックデバイス
- 次の
rwxr-xr-xなどの9文字は パーミッション を示します。 - 次の数値はリンクカウントを示します。ディレクトリの場合、サブディレクトリの数 に、自分自身(.) と親ディレクトリ(..)分の2を加えた個数となります。ファイルの場合、ln コマンドでハードリンクが作成されている個数を示します。
- 次の
yamadaはファイルの所有者を示します。 - 次の
yamadaはファイルのグループを示します。 - 次の数値はファイルのサイズ(バイト数)を示します。
- 次の
Jul 13 12:35などファイルの作成・更新日時を示します。 - 最後の
dirAやfileA.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@
それぞれの意味は下記となります。
*: 実行ファイル/: ディレクトリ@: シンボリックリンク|: FIFOパイプファイル=: ソケットファイル
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 文字を付加して出力します。
関連項目
Copyright (C) 2025 杜甫々
初版:2025年7月13日 最終更新:2025年7月13日
https://www.tohoho-web.com/linux/cmd/ls.html