検索
連載

【 ls 】コマンド(ドットファイル/ディレクトリ編)――表示対象を指定するLinux基本コマンドTips(28)

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。前回、前々回に続き、今回も「ls」コマンドを取り上げます。

Share
Tweet
LINE
Hatena
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回も「ls」コマンドの応用編として、ドットファイルや再帰表示など、表示対象を指定する方法を紹介します。

lsコマンドとは?

 「ls」はファイルを一覧表示する他、ファイルの詳細情報を表示する際にも使えるコマンドです。

 「ls ディレクトリ名」でディレクトリ内にあるファイルの一覧を、「ls」のみで実行した場合はカレントディレクトリ内にあるファイルの一覧を表示します。また、「ls file*.txt」のように、ワイルドカードで指定することもあります。


lsコマンドの書式

ls [オプション] [ファイルまたはディレクトリ……]

※[ ]は省略可能な引数を示しています



lsコマンドの主なオプション

 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


画面1
画面1 「-a」オプションを付けると、ドットファイルも含めて全てのファイルとディレクトリを表示できる

※CentOS 7では、lsデフォルトで「--color」オプション付きで実行されるようにエイリアス設定されています(「ls --color」については、本連載第27回を参照)。



 なお、オプションなしでも「ls .b*」のように、ファイル名の一部を明示的に指定した場合は、ドットファイルが表示されます。



ディレクトリ下のファイルも全て表示する

 「-R」オプションを付けると、表示対象の中にディレクトリがあった場合は、その中のファイルも表示します(画面2)。サブディレクトリがあればサブディレクトリ下のファイルも、さらにサブディレクトリがあればその中も……と「再帰的(recursive)」に表示します。

コマンド実行例

ls -R

ls -R ディレクトリ


画面2
画面2 「-R」オプションを付けると、ディレクトリ下のファイルを全て表示される(再帰的表示)


ディレクトリそのものの情報を表示する

 lsコマンドでディレクトリを指定すると、ディレクトリの中のファイルが一覧表示されますが、「ls -l」でディレクトリの「所有者」や「更新日」といった“ディレクトリそのものの情報”を確認したい場合もあります。そのような場合に「-d」オプションを使います。

コマンド実行例

ls -ld ディレクトリ


 以下の画面2の実行例では、「ls -l D*」と「ls -ld D*」の表示を比較しています。

画面2
画面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.

ページトップに戻る