本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。前回、前々回に続き、今回も「ls」コマンドを取り上げます。
本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回も「ls」コマンドの応用編として、ドットファイルや再帰表示など、表示対象を指定する方法を紹介します。
「ls」はファイルを一覧表示する他、ファイルの詳細情報を表示する際にも使えるコマンドです。
「ls ディレクトリ名」でディレクトリ内にあるファイルの一覧を、「ls」のみで実行した場合はカレントディレクトリ内にあるファイルの一覧を表示します。また、「ls file*.txt」のように、ワイルドカードで指定することもあります。
lsコマンドの主なオプションは次の通りです。
短いオプション | 長いオプション | 意味 |
---|---|---|
-l | 長いフォーマットで表示する。ディレクトリを指定した場合、最初にトータルのブロック数を表示してからディレクトリ内のファイルの情報を表示する | |
-o | 「-l」と同じだが、グループ情報は表示しない | |
-g | 「-l」と同じだが、ファイル所有者を表示しない | |
-n | --numeric-uid-gid | 「-l」と同じだが、所有者とグループ名の代わりにUIDとGIDを数値で表示する |
--full-time | 「-l」と同じだが、完全な日時を表示する(「-l --time-style=full-iso」と同じ) | |
-G | --no-group | 「-l」と併用したとき、グループ名を表示しない |
--author | 「-l」と併用したとき、各ファイルの作成者を表示する | |
短いオプション | 長いオプション | 意味 |
---|---|---|
-h | --human-readable | 「-l」と併用したとき、サイズを人が読みやすい形式で表示する(例:1K、234M、2G) |
--si | 「-h」と同じだが、乗数の単位として1024の代わりに1000を使用する | |
-k | 「-l」と併用したとき、サイズを1KB単位(1024バイトの倍数)で表示する | |
--block-size=SIZE | 「-l」と併用したとき、サイズを「SIZE」の倍数として表示する。SIZEは1024単位のK、M、G……および1000単位のKB、MB、GB……などが使用可能。例えば、「--block-size=M」とすると1M単位(1,048,576の倍数)で表示 | |
短いオプション | 長いオプション | 意味 |
---|---|---|
-c | 「-l」と併用したとき、更新日の代わりに「ctime」(ファイルの属性など変更した時刻)を表示する | |
-u | 「-l」と併用したとき、更新日の代わりに最終アクセス日を表示する | |
--time=WORD | 「-l」と併用し、ファイル更新時刻の代わりに「WORD」で指定した時間を表示する(WORDが「atime」の場合は「-u」相当、「access」の場合は「-u」相当、「use」の場合は「-u」相当、「ctime」「status」の場合は「-c」相当) | |
--time-style=STYLE | 「-l」と併用し、「STYLE」で指定した形式で時間を表示する(STYLEは「full-iso」「long-iso」「iso」「locale」「FORMAT」が指定可能。FORMATは「date」コマンドと同様に指定) | |
短いオプション | 長いオプション | 意味 |
---|---|---|
-F | --classify | 名前の後にタイプ識別子(*/=>@|のいずれか)を付けて出力する(第26回「ファイルの種類が分かるように一覧表示する」参照) |
--file-type | 「-F」と同じだが、実行ファイルを表す「*」は付けない | |
-p | --indicator-style=slash | ディレクトリの場合のみ「/」を付けて表示する |
短いオプション | 長いオプション | 意味 |
---|---|---|
-i | --inode | 各ファイルの前にファイルの「iノード番号」(ファイルを管理するのに使われている数値)を表示する |
-s | --size | 各ファイルの前にファイルのブロック数を表示する |
-Z | --context | 各ファイルのSELinuxセキュリティコンテキストを表示する |
短いオプション | 長いオプション | 意味 |
---|---|---|
-C | リストを常に複数の列で出力する(リダイレクトやパイプで画面以外に出力した場合も画面表示と同じように複数の列で出力する:第26回「常に1行で/常に複数行で表示する」参照) | |
-1 | リストを常に1件1行で表示する(画面表示の際もリダイレクトやパイプで画面以外へ出力した場合と同じように1行1件で表示する) | |
-m | ファイル名のリストをカンマで区切って表示する | |
-x | 複数列の表示でファイル名を列方向ではなく行方向(縦方向)に並べる | |
-T 数 | --tabsize=文字数 | タブ幅を8の代わりに指定した文字数にする |
-w 数 | --width=文字数 | スクリーン幅を指定した文字数にする |
--format=WORD | 表示スタイルをWORDで指定(例:「--format=long」で「-l」相当。WORDが「across」「horizontal」の場合は「-x」相当、「commas」の場合は「-m」相当、「long」「verbose」の場合は「-l」相当、「single-column」の場合は「-1」相当、「vertical」の場合は「-C」相当) | |
-Q | --quote-name | ファイル名をダブルクオート(")で囲む |
--quoting-style=WORD | ファイル名のクオートをWORDで指定された形式で行う(WORDには「literal」「locale」「shell」「shell-always」「c」「escape」を指定) | |
--color[=WHEN] | カラーで出力する。WHENには「always」「never」「auto」を指定(デフォルトはautoで、出力先が端末の時だけカラーで出力する)、色の設定は環境変数「LS_COLORS」で行う | |
-N | --literal | 生の要素名を表示する(制御文字などを特別扱いしない) |
-q | --hide-control-chars | 表示不可能な文字を「?」に置き換える |
--show-control-chars | 表示不可能な文字をそのまま表示する(出力が端末ではない場合のデフォルト) | |
短いオプション | 長いオプション | 意味 |
---|---|---|
-t | ファイルの更新日が新しい順に表示する(「-lc」が併せて指定されている場合は「ctime」順、「-lu」が併せて指定されている場合は最終アクセス日順で表示) | |
-S | ファイルサイズの大きい順に並べる | |
--group-directories-first | 先にディレクトリの一覧を表示してからファイルを一覧表示する(「--sort=none」「-U」と併用した場合は無効) | |
--sort=WORD | 名前順の代わりに「WORD」で指定した順で並べ替える(例:「--sort=time」で更新日順。WORDが「none」は「-U」相当、「extension」は「-X」相当、「size」は「-S」相当、「time」は「-t」相当、「version」は「-v」相当) | |
-v | 自然な数字(version)順でソートする | |
-X | 拡張子のアルファベット順にソートする | |
-r | --reverse | 並び順を反転させる |
-U | ファイルを並べ替えず、ディレクトリに含まれている要素順で表示する | |
-f | ファイルを並べ替えず、ディレクトリ情報のままで表示する(「-aU」が有効になり、「--color」が無効になる) | |
短いオプション | 長いオプション | 意味 |
---|---|---|
-a | --all | ドットファイルも表示する |
-A | --almost-all | ドットファイルも表示する、ただし「.」と「..」を除く |
-B | --ignore-backups | 「~」で終了する要素を一覧表示しない |
--ignore=PATTERN | シェル形式の「PATTERN」(「D*」や「file[1-3].txt」など)に一致する要素は表示しない | |
--hide=PATTERN | シェル形式の「PATTERN」に一致する要素は表示しない(「-a」または「-A」で上書きされるため「--hide=".b*"」のような指定は無効) | |
-d | --directory | ディレクトリの内容ではなく、ディレクトリそのものの情報を表示する(シンボリックリンクもたどらない) |
-H | --dereference-command-line | コマンドラインで指定したファイルやディレクトリがシンボリックリンクの場合は、リンク先の情報で表示(「-F」「-d」「-l」と一緒に使う。例えば、「/bin」が「/usr/bin」へのシンボリックリンクの場合、「ls -l /bin」ではシンボリックリンクの情報が表示されるが、「ls -lH /etc」では「ls -l /usr/bin」と同じ結果になる) |
--dereference-command-line-symlink-to-dir | コマンド行のシンボリックリンクがディレクトリを指している場合には、シンボリックリンクをたどる | |
-L | --dereference | ディレクトリ内のファイルも含めて、全てをシンボリックリンクのリンク先の情報で表示する |
-R | --recursive | ディレクトリを指定した場合、再帰的に表示する |
「.」から始まる名前のファイル(ドットファイル)やディレクトリは、通常はファイル名を明示しない限り処理の対象になりません。従って、lsコマンドでも表示されません。
ドットファイルも表示したい場合は、「-a」または「-A」オプションを使います。「-a」の場合は全てのファイル、「-A」の場合は「.」と「..」以外のファイルが表示されます(画面1)。
ls -a
ls -A
※CentOS 7では、lsデフォルトで「--color」オプション付きで実行されるようにエイリアス設定されています(「ls --color」については、本連載第27回を参照)。
なお、オプションなしでも「ls .b*」のように、ファイル名の一部を明示的に指定した場合は、ドットファイルが表示されます。
「-R」オプションを付けると、表示対象の中にディレクトリがあった場合は、その中のファイルも表示します(画面2)。サブディレクトリがあればサブディレクトリ下のファイルも、さらにサブディレクトリがあればその中も……と「再帰的(recursive)」に表示します。
ls -R
ls -R ディレクトリ
lsコマンドでディレクトリを指定すると、ディレクトリの中のファイルが一覧表示されますが、「ls -l」でディレクトリの「所有者」や「更新日」といった“ディレクトリそのものの情報”を確認したい場合もあります。そのような場合に「-d」オプションを使います。
ls -ld ディレクトリ
以下の画面2の実行例では、「ls -l D*」と「ls -ld D*」の表示を比較しています。
ホームディレクトリで実行した場合、「ls -l D*」では「D」から始まるファイルやフォルダ(Desktop、Documents、Download)が対象となりますが、これらは全てディレクトリなので、それぞれのディレクトリ内にあるファイルも表示されています。
対して「ls -ld D*」では、「Desktop」「Documents」「Download」自身の情報が表示されています。
PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、専業ライターとして活動を開始。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。
Copyright © ITmedia, Inc. All Rights Reserved.