lsコマンドの出力にはデフォルトでは色が付いている。これは、ファイルやフォルダ、特殊ファイル、ファイルタイプなどを簡単に判別できるようにするためである。具体的には種類に応じて次のような色分けが利用されている。
| 色 | 意味 |
|---|---|
| (通常色) | 通常のファイルやディレクトリ |
| 青 | ディレクトリ |
| 水色 | シンボリックリンク |
| 緑 | 実行ファイル |
| 黄色 | デバイスやパイプ |
| マゼンタ | ソケット |
| lsコマンド出力の色分け(主要なもののみ) | |
何に対してどのような色を付けるかの設定は、dircolorsコマンド(および「man dir_colors」コマンド)で確認できる。
lsコマンドの結果が色付きで表示されているのは、「--colors=auto」オプションが指定されているからである。いや、そんなオプションを指定した覚えはない、と思うかもしれないが、インストールしたばかりで何もカスタマイズしていない環境では通常、「エイリアス(alias)」によってこのオプションが自動的に付加されている。
エイリアスとは、コマンドの「別名」を定義する機能であり(Windowsのコマンドプロンプトで言えば、doskeyコマンドの機能に近いが、これはかなり劣る)、「alias」コマンドを実行すると現在定義されているエイリアスの一覧を確認できる。
コマンドのエイリアスこのエイリアスの定義を見ると、「ls」に対して「ls --color=auto」が定義されていることが分かる。これにより、ユーザーが例えば「ls *.txt」と入力すると、それは実際には「ls --color=auto *.txt」のように展開されて実行されることになる(エイリアス中に別のエイリアスを含むことも可能)。
上の例ではlsをベースにした、オプションの異なるエイリアスが全部で4つ定義されているので(「l」「la」「ll」「ls」の4つ)、目的に応じて使い分けるとよい。
エイリアスを使わずに実行したければ、コマンドの先頭に「\」(フォントによっては半角の「¥」マークではなく、逆スラッシュ記号「\」として表示されることもあるが、機能的には同じである)を付けて実行する。こうすると、エイリアスとして展開されなくなる(エイリアスやシェルのコマンドライン編集機能などについては今後解説予定)。
エイリアスの無効化なお、「--color=auto」オプションを指定すると、「端末」アプリケーションやシェル上でインタラクティブにlsコマンドを実行している場合にのみ、lsの結果が色付きで表示される。lsの出力をファイルにリダイレクトしたり、パイプで別のコマンドに接続したりしていると、ただのテキスト文字として出力される。常に色情報を有効にしたければ「--colors=always」、常に無効にしたければ「--colors=never」のように指定する。
lsの出力は、何もオプションを指定しないと、名前だけを複数横に並べたマルチカラム表示になる。だがコマンドの出力をリダイレクトしてファイルに保存したり、パイプで別のコマンドに接続したりすれば自動的に縦1列だけの表示になる。これを強制的に制御するには、次のオプションを指定する。
| オプション | 意味 |
|---|---|
| -C | マルチカラム表示の場合に、名前を横にソートする(-x)のではなく、縦にソートする。コンソール表示の場合のデフォルト |
| -x | マルチカラム表示の場合に、名前を縦にソートする(-C)のではなく、横にソートする |
| -1 | シングルカラム表示にする。パイプやリダイレクト使用時のデフォルト。Windowsの「dir /b」に相当 |
| 表示形式の変更オプション | |
以下に実行例を示す。
lsのマルチカラム表示lsでカレントディレクトリ中の全ファイルではなく、指定したファイルやディレクトリの一覧だけを取得したい場合は、lsに続けて該当するファイル名やディレクトリ名、およびワイルドカード指定のファイル名などを列挙すればよい。ワイルドカード表記とパス区切りを組み合わせて、複数の階層にある多数のファイルを同時にまとめて列挙することもできる(Windowsのdirコマンドでは、このような指定はできない)。
引数付きのlsコマンドの例だが指定したパス名(のリスト)の中にディレクトリが含まれている場合は、その内容まで自動的に展開されてしまう。例えば「ls /bin」とすると、「/bin」ディレクトリの情報ではなく、「/bin/」中にある「*」に該当するファイルやディレクトリの情報が一覧表示される。この自動的な展開を抑止するには「-d」オプションを指定する。
ディレクトリの展開の抑制lsの出力は、デフォルトでは名前のアルファベット順にソートされて出力されているが、Windowsの「dir /o」のように、順序を変更するオプションが幾つかある。
| オプション | 意味 |
|---|---|
| -t | 更新日時順にする(新しいファイルが前) |
| -S | ファイルサイズ順にする |
| -X | 拡張子のアルファベット順にする |
| -u | -lや-tと併用した場合に、更新日時ではなくアクセス日時を使用する |
| -r | ソート順序を逆にする。他のオプションと併用すること |
| 結果のソートに関するオプション(主要なもののみ) | |
Windowsの「dir /S」のように、カレントディレクトリもしくは指定したディレクトリ以下を全てたどるには、「-R」オプションを指定する。ちなみにオプションの大文字小文字は区別されるため、「-r」と「-R」は異なるオプションとして扱われる。
「-F」オプションを使用すると、名前の末尾に「*」や「@」などの文字が付加され、ファイルの種類が簡単に分かるようになる。
| 付加文字 | 意味 |
|---|---|
| 付加文字 | |
| * | 実行許可属性(x)の付いたファイル |
| / | ディレクトリ |
| @ | シンボリックリンク |
| ファイルのクラス分け(主要なもののみ) | |
以下に実行例を示す。
ファイル名のクラス分け表示以上、簡単にlsコマンドの使い方を解説した。lsコマンドのオプション一覧や、より詳細な使い方については以下の記事も参照していただきたい。
lsコマンドに限った話ではないが、長い間使われてきただけあってLinuxやUNIXのコマンドには非常に多くのオプションが実装されている。コマンドを実際に動かしたり、ヘルプやmanコマンドなどを大いに参考にして、十分活用していただきたい。
Copyright© Digital Advantage Corp. All Rights Reserved.