【実践Linux1】ファイルとディレクトリについて lsコマンドの使い方

コンピュータ上には様々なデータがあり、それらはファイルと呼ばれます。ワードなどで作成したファイルは文書ファイル、写真などは画像ファイルと呼ばれ、さまざまな種類のファイルがあります。

ファイルが増えていくと、それらを何らかの形で分類しないと必要なファイルを見つけるのが大変になってしまうため、ファイルをまとめる場所を作成する必要が出てきます。このファイルをまとめる場所というのがディレクトリにあたります。

ディレクトリの中には複数のファイルをまとめることができます。またディレクトリの中にさらにディレクトリを作成し、その中にファイルや別のディレクトリを保存することもできます。

ファイルやディレクトリを参照するlsコマンド

Linuxでファイル操作を行う際に最初に必要になるのがlsコマンドです。

lsコマンドはListの略で、ファイルやディレクトリの一覧を表示することができます。またlsコマンドにはファイル名やディレクトリ名を指定することもでき、ディレクトリ名を指定するとそのディレクトリ内にあるファイルやディレクトリ名の一覧を取得することができます。

またファイル名やディレクトリ名を指定する際には*と?をワイルドカードとして使うこともできます。

書式

ls [オプション] [ファイル]

オプション

-a(All)

.から始まる隠しファイルも含めてすべて出力します。

-l(Long)

長形式で出力します。

-t(Time)

最終更新時間順に並び替えて出力します。

-r(Reverse)

逆順に並び替えて出力します。

実践 lsコマンド

それではここまで学習した内容を踏まえて、lsコマンドを使って実際にファイル操作してみましょう。

何もつけずにlsコマンドを実行した場合

何も指定せずにlsコマンドを実行すると、現在いるディレクトリ(カレントディレクトリ)内にあるファイルやディレクトリ名が表示されます。

$ ls
ダウンロード デスクトップ ビデオ 画像
テンプレート ドキュメント 音楽 公開

lsコマンドに場所を指定した場合

lsコマンドのあとにディレクトリ名を指定すると、指定したディレクトリ内のファイルやディレクトリ一覧を表示します。

$ ls /usr/
bin etc games include lib libexec local sbin share src tmp

usrという名前のディレクトリ内にあるファイルやディレクトリ一覧を取得できました。

ワイルドカードを使った絞り込み

/etcディレクトリ内が以下のようになっているとします。

$ ls /etc/
ConsoleKit mailcap DIR_COLORS makedev.d
(略)

etcディレクトリにはたくさんのファイルが存在しており、目的のファイルを探すのが大変そうです。そこで役立つのがワイルドカードを使った絞り込みです。

lsコマンドによって取得された結果から絞り込む場合、ワイルドカードを使うことができます。

例えばファイル名末尾に.confがつくファイルを絞り込みたい場合、以下のようにします。

$ ls /etc/ *.conf
nsswitch.conf asound.conf
(略)

ワイルドカードである*は任意の文字列を表しています。つまり*.confは何らかの文字列のあとに.confがつくファイルを意味しています。何文字でも良いため、末尾が.confで終わるファイルすべてを出力します。

文字数がわかっている場合は?を使って指定します。何らかの5文字のあとに.confがつくファイルを出力したい場合は以下のようにします。

$ ls /etc/ ?????.conf
asound.conf
(略)

hosts.のあとに何らかの4文字が続き、wで終わるファイルを絞り込む場合は以下のようにします。

$ ls /etc/ hosts.????w
hosts.allow

-lオプションで長形式の情報を取得する

lsコマンドにlオプションをつけると、長形式の情報を取得できます。

$ ls -l /home/linuxtext/
合計 32
drwxr-xr-x. 2 linuxtext linuxtext 4096 7 月 6 10:05 2012 ダウンロード
drwxr-xr-x. 2 linuxtext linuxtext 4096 7 月 6 10:05 2012 テンプレート
drwxr-xr-x. 2 linuxtext linuxtext 4096 7 月 26 18:33 2012 デスクトップ
drwxr-xr-x. 8 linuxtext linuxtext 4096 7 月 27 14:07 2012 ドキュメント
drwxr-xr-x. 2 linuxtext linuxtext 4096 7 月 6 10:05 2012 ビデオ
drwxr-xr-x. 2 linuxtext linuxtext 4096 7 月 6 10:05 2012 音楽
drwxr-xr-x. 2 linuxtext linuxtext 4096 7 月 6 10:05 2012 画像
drwxr-xr-x. 2 linuxtext linuxtext 4096 7 月 6 10:05 2012 公開
(略)

lオプションを付与することで、最終更新時間やファイルの読み書き権限を含めた詳細な情報を取得することができました。

aオプションで隠しファイルも含めて取得する

前述したとおり、aオプションでは.から始まる隠しファイルも含めて取得することができます。複数のオプションを合わせて使うことができるので、上のlオプションと合わせて-laオプションを付与して試してみます。

$ ls -la /home/linuxtext
合計 196
drwx------. 31 linuxtext linuxtext 4096 7 月 27 14:08 2012 .
drwxr-xr-x. 4 root root 4096 7 月 9 10:43 2012 ..
-rw-------. 1 linuxtext linuxtext 4960 7 月 27 08:56 2012 .ICEauthority
drwxrwxr-x. 2 linuxtext linuxtext 4096 7 月 18 09:52 2012 .abrt
-rw-------. 1 linuxtext linuxtext 3148 7 月 26 19:30 2012 .bash_history
-rw-r--r--. 1 linuxtext 500 18 12 月 2 23:40 2011 .bash_logout
-rw-r--r--. 1 linuxtext 500 176 12 月 2 23:40 2011 .bash_profile
-rw-r--r--. 1 linuxtext 500 124 12 月 2 23:40 2011 .bashrc
(略)
drwxr-xr-x. 2 linuxtext linuxtext 4096 7 月 6 10:05 2012 ダウンロード
drwxr-xr-x. 2 linuxtext linuxtext 4096 7 月 6 10:05 2012 テンプレート
drwxr-xr-x. 2 linuxtext linuxtext 4096 7 月 26 18:33 2012 デスクトップ
drwxr-xr-x. 8 linuxtext linuxtext 4096 7 月 27 14:07 2012 ドキュメント
(略)

先ほどは表示されなかった.から始まるファイルまで取得することができました。.から始まる隠しファイルはシステムの設定などが書かれたファイルに使われることが多いです。

また今回はlオプションとaオプションを合わせて-laオプションとして使いましたが、複数のオプションを同時に使いたい場合、順序は関係ないので、個別に指定することもできるので、

  • ls -la
  • ls -al
  • ls -l -a
  • ls -a -a

上記いずれも同じように動作します。

tオプションを使って更新時間順に並び替え

lsコマンドにtオプションを付与することで、更新時間順に並び替えることができます。

$ ls -lt /home/linuxtext
合計 32
drwxr-xr-x. 8 linuxtext linuxtext 4096 7 月 27 14:07 2012 ドキュメント
drwxr-xr-x. 2 linuxtext linuxtext 4096 7 月 26 18:33 2012 デスクトップ
drwxr-xr-x. 2 linuxtext linuxtext 4096 7 月 6 10:05 2012 ダウンロード
drwxr-xr-x. 2 linuxtext linuxtext 4096 7 月 6 10:05 2012 テンプレート
drwxr-xr-x. 2 linuxtext linuxtext 4096 7 月 6 10:05 2012 ビデオ
drwxr-xr-x. 2 linuxtext linuxtext 4096 7 月 6 10:05 2012 音楽
drwxr-xr-x. 2 linuxtext linuxtext 4096 7 月 6 10:05 2012 画像
drwxr-xr-x. 2 linuxtext linuxtext 4096 7 月 6 10:05 2012 公開
(略)

ファイルが更新日時の新しい順に並んでいるのがわかりますね。

まとめ

いかがでしたか?今回はファイル操作の基本となるlsコマンドの使い方について解説しました。

Linuxはコマンドから操作することが多く、WindowsやMac OSのようにGUIがない場合も少なくない(むしろ多い)ので、コマンドのみでどこになにがあるのかを把握するためにもlsコマンドは必須です。