[ ls ]基本コマンドと絶対覚えたいオプション
lsは「list segments」の略で、ファイルやディレクトリの一覧(中身)を表示するコマンドになります。又、一覧だけではなく詳細情報も表示させることができる便利なコマンドになります。
lsコマンドはオプションが多いのも特徴ですが、いっぺんに全部覚えることはかなり大変なので、用途に合わせて少しずつ使えるバリエーションを増やしていくと良いと思います。
Contents
lsコマンドの基本的な使い方
「ls」コマンドの基本的書式は、
$ ls
とかなりシンプルな入力になります。「ls」コマンドは自分が作業しているディレクトリ内のディレクトリやファイルを表示させたい時に使用します。
ディレクトリの中身を表示
オプションを付けず、単純に「ls」と入力した場合、自分が現在作業しているディレクトリ(カレントディレクトリ)内にあるディレクトリやファイルを表示します。例えば、現在「/usr/test」ディレクトリで作業している場合に「ls」コマンドを使用してみると、
×××@×××:/usr/test$ ls dirA fileA fileB index.html index.php |
といった感じで表示されます。青字がディレクトリ、白字がファイルになります。上の例ではディレクトリ「/usr/test」で作業している時に、ディレクトリ内にあるファイル等を表示するために「ls」コマンドを使用しましたが、カレントディレクトリ内にいなくても、「ls」後ろに任意のディレクトリパスを入力するだけで表示できます。
例えば、ホームディレクトにいたとして、「/usr/test」内を表示したかったら、
$ ls /usr/test
×××@×××:~$ ls /usr/test dirA fileA fileB index.html index.php |
となって、同様の表示がされます。つまり、「ls」の後ろに調べたいディレクトリのパスを入力することによっていつでも簡単に任意のディレクトリ内のファイル等を表示させることができます。
ファイルの存在有無の確認
上記では「ls」の後ろにディレクトリパスを入力して、ディレクトリの中身について表示させてましたが、ディレクトリパスではなく、ファイル名を入力した場合、入力したファイルが存在するかどうか確認することができます。
例えば、現在「/usr/test」ディレクトリで作業していて、「index.html」ってファイルはこのディレクトリにあったかな???って疑問に思った時、次のように簡単に調べることができます。
×××@×××:/usr/test$ ls index.html index.html |
$ ls index.html
と入力すると、入力したファイル名と一致するファイル名が表示されます。つまりこの動作によって、ディレクトリ内には「index.html」というファイルが存在するという確認が取れました。
もし入力したファイルがなかった場合は、
×××@×××:/usr/test$ ls index.txt ls: 'index.txt' にアクセスできません: そのようなファイルやディレクトリはありません |
といったエラー表示が出ます。このような表示が出た場合は純粋にファイルが存在しないか、ファイル名が間違っているかのどちらかなので、ファイル名は正確に入力しましょう。
ファイル名を省略簡単表示
ファイル名を入力すれば、そのファイルが存在するかどうかが分かると解説しましたが、大抵の人はこう思うはずです。
「似たようなファイル名がありすぎて、一字一句正確に覚えるの無理!!!!」
そう思うのは当然のことで、この膨大な量のファイル名を全て正確に覚える事は、よっぽど記憶力が良い人ではないと不可能です。
そんな時、ファイルの一部分を入力すれば、あとは機械が勝手に推測して、候補を表示してくれる便利な機能があります。それが「*」ワイルドカード機能です。「*」は数字キーの上にあるボタンで入力可能です。
例えば、「/usr/test」内の「index」のつくファイルを表示したい場合は、
$ ls index*
と「wp」の後ろに「*」を入力してあげると、
×××@×××:/usr/test$ ls index* index.html index.php |
と「index」のつくファイル一覧を表示できます。「*」を使用した場合、「i」一文字でも同様の結果になります。
ちなみに、「*」を使用した場合、ファイルだけではなく、ディレクトリ名も表示されます。さらに、ディレクトリ名だけでなく、その中に存在するディレクトリ、ファイル名も同時に表示することが可能になります。(ディレクトリ内の表示はひとつ下の階層まで)
「 ls 」コマンドのオプション
「 -l」オプション・・・・ファイルの詳細一覧
「 -l」オプションコマンドはファイルの一覧を詳細に表示できるオプションになります。「 -l」はlongの略、長い書式という意味になります。基本的な書式は、
$ ls -l
例えば「/usr/test」内の詳細一覧を表示させる場合は、
$ ls -l /usr/test
となり、以下のように表示されます。
×××@×××:/usr/test$ ls -l 合計 12 drwxr-xr-x 2 root root 4096 6月 2 16:49 dirA - rw-r--r-- 1 root root 0 6月 2 16:49 fileA - rw-r--r-- 1 root root 0 6月 2 16:50 fileB - rw-r--r-- 1 root root 612 6月 2 16:56 index.html - rw-r--r-- 1 root root 2131 6月 2 16:55 index.php |
表示の見方は左から
- ファイルタイプ
- パーミッション
- ハードリンクの数
- 所有者名
- グループ名
- バイトサイズ
- タイムスタンプ
- ファイル名
となっています。「 -l」オプションコマンドは、ファイルやディレクトリの所有者名やグループ名、パーミッションを調べるときに重宝するオプションになって、非常に使う機会が多いオプションになります。
「 -a」オプション・・・・ドットファイルも含めて全て表示
「 -a」オプションコマンドは「.」ドットファイル(隠しファイル)も含めての一覧を表示できるオプションになります。「 -a」はallの略で全てのファイルという意味になります。基本的な書式は、
$ ls -a
例えば「/usr/test」内にあるドットファイルも含めて全てのファイルやディレクトリを表示させる場合は、
$ ls -a /usr/test
となり、以下のように表示されます。
×××@×××:~$ ls -a /usr/test . .. .fileX dirA fileA fileB index.html index.php |
先ほどまで表示されていなかった「.fileX」ファイルが表示されています。
「 -a」オプションコマンドは「 -l」オプションコマンドと組み合わせて使用することも可能で、基本書式は、
$ ls -al
例えば「/usr/test」内にあるドットファイルも含めて全てのファイルの詳細一覧を表示させる場合は、
$ ls -al /usr/test
となり、以下のように表示されます。
×××@×××:~$ ls -al /usr/test 合計 20 drwxr-xr-x 3 root root 4096 6月 2 16:57 . drwxr-xr-x 12 root root 4096 6月 2 16:48 .. -rw-r--r-- 1 root root 0 6月 2 16:50 .fileX drwxr-xr-x 2 root root 4096 6月 2 16:49 dirA -rw-r--r-- 1 root root 0 6月 2 16:49 fileA -rw-r--r-- 1 root root 0 6月 2 16:50 fileB -rw-r--r-- 1 root root 612 6月 2 16:56 index.html -rw-r--r-- 1 root root 2131 6月 2 16:55 index.php |
ドットファイルも含めてすべて表示されていることがわかると思います。
※上記では「 -al」と入力しましたが、逆にして「 -la」でも同じ結果が表示されます。
「 -X」オプション・・・・拡張子順に並べて表示する
「 -X」オプションコマンドは、ファイルを拡張子順に並べ替えて表示するオプションになります。「 -X」はsort=extensionの略で、「sort」は並べ替える、「extension」は拡張子という意味になります。
※「 -X」は大文字になります。
基本的な書式は、
$ ls -X
例えば、「/usr/test」ディレクトリ内のファイルを拡張子順に並べ替えて表示させる場合は、
$ ls -X /usr/test
×××@×××:~$ ls -X /usr/test dirA fileA fileB index.html index.php |
このオプションはディレクトリやファイルの数が多くなればなるほど、すっきりと見やすくなります。
「 -X」オプションコマンドは、「 -l」オプションコマンドや「 -a」オプションコマンドとも組み合わせ可能で、「/usr/test」ディレクトリ内のドットファイルも全て含めて、拡張子順に詳細に表示したい時は
$ ls -Xal /usr/test
となり、以下のように表示されます。
×××@×××:~$ ls -Xal /usr/test 合計 20 drwxr-xr-x 2 root root 4096 6月 2 16:49 dirA - rw-r--r-- 1 root root 0 6月 2 16:49 fileA - rw-r--r-- 1 root root 0 6月 2 16:50 fileB drwxr-xr-x 3 root root 4096 6月 2 16:57 . drwxr-xr-x 12 root root 4096 6月 2 16:48 .. - rw-r--r-- 1 root root 0 6月 2 16:50 .fileX - rw-r--r-- 1 root root 612 6月 2 16:56 index.html - rw-r--r-- 1 root root 2131 6月 2 16:55 index.php |
「 -R」オプション・・・・ディレクトリ内の全てを表示する
「 -R」オプションコマンドは、指定したディレクトリ内の全てを再帰的に表示します。「 -R」はrecursive(リカーシブ)の略で、「再帰的」という意味です。再帰的という言葉は、日常ではほとんど使用されない言葉で、イメージしにくいですが、Linuxのコマンドでは様々な場面で使用されています。
簡単いうと、あるコマンドを実行した場合、対象のディレクトリ内にある全てのディレクトリ、ファイルに対して同様の実行を行うという意味です。
さらに簡単に言うと、「対象となるディレクトリ全てに対して実行しますよ」って事です。
基本的書式は、
$ ls -R
となります。それでは具体例を見ていきましょう。
例えば、「/usr/test」ディレクトリ内のファイルを表示したい場合は以下のように「ls」コマンドを使用します。
$ ls /usr/test
このコマンドは以下のように純粋に「test」ディレクトリ内を表示させます。
×××@×××:~$ ls /usr/test dirA fileA fileB index.html index.php |
それでは、「 -R」オプションコマンドを使用するとどうなるか見てみます。
$ ls -R /usr/test
×××@×××:~$ ls -R /usr/test /usr/test: dirA fileA fileB index.html index.php/usr/test/dirA: fileC fileD |
今度はたくさんのディレクトリやファイルが表示されました。青字はディレクトリ、白字はファイルを表しています。
上段から順番に解説すると、
「/usr/test」には「dirA」というディレクトリが存在します。
その下に進んで、
「/usr/test/dirA」には「fileC」「fileD」のファイルがあります。
もし、「/usr/test/dirA」の中にディレクトリが存在していた場合、その中身が表示されます。
何となくイメージがつきましたか?「ls」コマンドで「 -R」オプションを使用した場合、全てのディレクトリに対して「ls」コマンドを実行して表示させていることになります。
コメント