りなっくすとらずぱい!

Raspberry Pi初心者に向けた各コマンドの説明、プログラムの作り方について紹介しています!

ls - ディレクトリ内のファイルを表示する

f:id:ibuquicallig:20190429100548p:plain

こんにちは、たねやつです。

この記事ではlsコマンドの基本的な使い方と例、オプションなどについて解説しています。

前の記事

直接的なつながりはありませんが、まだ前回まででRaspberry Piの初期セットアップを完了しました。ここからは超基本的なコマンドについての解説を進めていきます。

コマンドについて

lsコマンドを使用することで任意のディレクトリ内のファイルとディレクトリを一覧表示することができます。エクスプローラーのようなGUIのない画面では現在位置に何があるかなどを確認してディレクトリを移動していきます。Linuxを触る人であればだれでも知っていなければならないコマンドの一つです😎

lsList(リスト、一覧)から来ています。

現在のディレクトリ内の一覧表示

まずは単純にlsだけでコマンドを実行してみましょう!が、Raspberry Piの環境にログインした直後なら何も表示されません!!

$ ls
$

まだ何もファイルやディレクトリを作成したりしていないので何も表示されないです。。。

一旦空のファイルを作成してみましょう。touchコマンドを使用することで空のファイルを作成することができます。

$ touch file1 file2 file3
$ ls
file1 file2 file3

これで表示できました!(笑)ちょっと面倒でしたが、lsコマンド単体で実行すると自分の今いるディレクトリのファイルを表示することができます。

指定したディレクトリ内の一覧表示

次に指定したディレクトリの一覧を表示してみます。ls [内容を見たいディレクトリ]で表示することができます。試しに初期設定などでよく出てきた/etcディレクトリのなかを見てみましょう。

$ ls /etc
scadduser.conf            fb.modes         locale.alias    plymouth          services
alternatives            fstab            locale.gen      polkit-1          sgml
...

白と青と時々緑のファイルが表示されましたね!環境により色が異なるかもしれませんが、Raspberry Piの場合、白色がファイル、青色がディレクトリ、緑色が実行権限が与えられているファイルとなります。実行権限については別記事で紹介します。

指定したファイル名の一覧表示

ls [ファイル名]で一致するファイル名の一覧表示ができます。これだけだと使い道はなさそうですが、アスタリスクと一緒に使用する(ワイルドカードを使用する)ことで、部分一致検索ができます。

例えば日付が書かれているログファイルが以下のようにあるとします。

...
log-2018-01-11.tar.gz
log-2018-01-21.tar.gz
log-2018-02-01.tar.gz
log-2018-02-11.tar.gz
...

そんなディレクトリの中で以下のように実行することでファイルを抽出することができます。

$ ls *2018-02*
log-2018-02-01.tar.gz log-2018-02-11.tar.gz log-2018-02-21.tar.gz

コマンドライン上でファイル名を指定するだけであればタブキーを押せば予測で出すことができますが、一覧で出さなければならない時に便利です。

-l オプションで縦の一覧表示

-lオプションを使用することで縦の一覧形式で表示することができます。

$ ls /etc
-rw-r--r-- 1 root root    2981 Nov 13 21:58 adduser.conf
drwxr-xr-x 2 root root    4096 Apr 19 15:52 alternatives
drwxr-xr-x 3 root root    4096 Mar  8 15:14 apache2
...

先ほどまではマトリクス形式で横と縦に表示されていましたが、今度は縦にズラズラっと表示されます。Windowsのエクスプローラーの詳細表示に似たような感じになっています。

さて、先ほどまでと違っていろいろ情報が追加されて表示されていると思います。

-rw-r--r-- 1 root root    2981 Nov 13 21:58 adduser.conf

左から、

  • パーミション (ファイルに対して誰がどのような操作ができるか)
  • リンクの数 (ファイルへのショートカットのようなものの数)
  • 所有者名
  • 所有グループ名
  • (byte単位の)ファイルサイズ
  • 最終更新日時
  • ファイル名

となっています。わからない部分はそのままでも大丈夫です!後程別の記事でたっぷり解説します😍

更新日時なんかもまとめて表示できるのでこのコマンドをよく使う人も多いです。ファイル名が一か所にまとまって列挙されるのも見やすいポイントかと思います。

-a オプションで隠しファイルも表示

Linuxには、ファイルまたはディレクトリの名前の頭に.をつけると隠しファイルとして認識されるようになります。

実はこれはもともとはバグだったのですが現在でも慣習的に残ってしまっている使い方なんだそうです。。。(笑)

-aオプションを使用することによってそのような隠しファイルも表示します。これをホームディレクトリ上で実行してみると先ほどのlsコマンドでは見えなかったファイルが出てきます。

$ cd ~   (ホームディレクトリに移動)
$ ls -a
.  ..  .bash_history  .bash_logout  .bashrc  file1  file2  file3  .profile

.bashrcなどの隠しファイルと先ほど作成したファイルが表示されます。このような隠しファイル・ディレクトリに対して操作することも多々あるので、現場ではls -aというコマンドだったりls -laというコマンドが多用されます。私も普段からls -laを使用しています。

しかし、毎回毎回ls -laって打つの面倒くさくないですか?🤔🤔

エイリアスというコマンドの読み替えを設定できるので以下の記事を参考にしてみてください!

-h オプションでファイルサイズを見やすくする

最後に、たまに使用するのですがls -laなどで表示される一覧のファイルサイズはbyte単位で表示されているので、正確にどれぐらいのMBやKBなのかが一瞬では判断つきません。

-hオプションを使用することでファイルサイズを人間が読みやすいように変換してくれます。

$ ls -la
-rw-r--r-- 1 taneyats taneyats 3523 Apr 17 16:17 .bashrc

$ ls -lah
-rw-r--r-- 1 taneyats taneyats 3.5K Apr 17 16:17 .bashrc

横幅も若干スッキリするので上のエイリアスでの設定で追加しておいてもいいかもしれません。

最後に

以上が基本的なlsコマンドの使用方法となります。特にプログラムを作るためのコマンドではありませんが、CUI上では使わずには何もできない必須のコマンドですね!

もちろんプログラム上でもディレクトリ内に存在するファイル名を列挙できるという点を利用してファイルごとに処理を行うときなんかにこのコマンドの出力結果を使用したりもします。

次の記事

次回も、とてもとても基本的なコマンドのcdと、絶対パス・相対パスについて解説します。

参考

以下のサイトの情報を引用・参考にしました。

https://linuxjm.osdn.jp/html/gnumaniak/man1/ls.1.html

https://linux.just4fun.biz/?%E9%80%86%E5%BC%95%E3%81%8DUNIX%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89/%E3%83%8F%E3%83%BC%E3%83%89%E3%83%AA%E3%83%B3%E3%82%AF%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E6%95%B0%E3%82%92%E8%AA%BF%E3%81%B9%E3%82%8B%E6%96%B9%E6%B3%95%E3%83%BBls