原文: The Linux LS Command – How to List Files in a Directory + Option Flags (Bolaji Ayodeji)

翻訳・翻案: Manabu Matsumoto

1970 年代における Unix の創造以来、数多くのオペレーティングシステムが Unix を土台にしています。多くのオペレーティングシステムが衰退する一方で、生き残りに成功したものもあります。

Linux は最もポピュラーな Unix ベースのオペレーティングシステムのひとつです。それはオープンソースであり、世界中の多くの産業で使用されています。

Linux オペレーティングシステムの素晴らしい機能の一つに、コマンドラインインターフェース (CLI) があります。CLI はユーザーがシェル (shell) からコンピュータと対話することを可能にします。Linux のシェルは REPL (Read - 入力, Evaluate - 評価, Print - 出力, Loop - ループ) 環境です。そこでユーザーはコマンドを入力でき、シェルはそれを実行し結果を返します。

ls コマンドは 多くの Linux コマンドのひとつで、ユーザーが CLI を通してファイルやディレクトリをリストアップするのに用いられます。

この記事では、ls コマンドと日常の中で必要となるいくつかの重要なフラグについて詳しく説明します。

前提条件

  • ディレクトリとファイルを備えたコンピュータが用意されている
  • Linux のディストロの中の一つをコンピュータにインストール済みである
  • CLI 操作の基礎知識
  • あなたの笑顔 :)

Linux の ls コマンド

Linux や他の Unix ベースのオペレーティングシステムにおいて、ls コマンドはファイルやディレクトリをリストアップするのに用いられます。

GUI でファイルエクスプローラーまたはファインダーの中を操作するように、ls コマンドを用いてカレントディレクトリのすべてのファイルやディクトリをデフォルトではリストアップでき、さらにコマンドラインを通してそれらと対話することができます。

ターミナルを起動して ls と入力し、この動作を確認してください:

Screenshot-2020-08-20-at-9.40.29-PM-3

オプションを用いてディレクトリ内のファイルをリストアップする方法

ls コマンドはいくつかのフラグ (オプションとしても知られています) を受け付けます。 これは、ターミナル内でファイルやディレクトリがリストアップされる方法を変化させるために、情報を追加します。

言い換えると、フラグは ls コマンドの動作を変化させます:

 ls [フラグ] [ディレクトリ]
追記: コンテンツという言葉は、リストアップされるファイルまたはディレクトリという意味で、記事の至る所に用いられますが、実際のファイル/ディレクトリの内容ではありません。

現在のワーキングディレクトリ内のコンテンツをリストアップする

ls コマンドを入力すると、現在のワーキングディレクトリのコンテンツをリストアップします:

Screenshot-2020-08-20-at-9.40.29-PM-4

別のディレクトリ内のコンテンツをリストアップする

ls [ディレクトリへのパスをここに記入する] コマンドを入力すると、別のディレクトリのコンテンツをリストアップします:

Screenshot-2020-08-20-at-10.32.52-PM

ルートディレクトリ内のコンテンツをリストアップする

ls / コマンドを入力すると、ルートディレクトリのコンテンツをリストアップします:

Screenshot-2020-08-20-at-10.46.10-PM

親ディレクトリ内のコンテンツをリストアップする

ls .. コマンドを入力すると、一つ上のレベルの親ディレクトリのコンテンツをリストアップします。二つ上のレベルのコンテンツに対しては ls ../.. を入力します:

Screenshot-2020-08-20-at-10.48.22-PM

ユーザーのホームディレクトリ内のコンテンツをリストアップする (/home/user)

ls ~ コマンドを入力すると、ユーザーのホームディレクトリ内のコンテンツをリストアップします:

Screenshot-2020-08-20-at-10.51.19-PM

ディレクトリだけをリストアップする

ls -d */ コマンドを入力すると、ディレクトリだけをリストアップします:

Screenshot-2020-08-21-at-12.53.05-PM

サブディレクトリと一緒にコンテンツをリストアップする

ls * コマンドを入力すると、ディレクトリのコンテンツにサブディレクトリのコンテンツを含めてリストアップします:

Screenshot-2020-08-21-at-1.07.54-PM

再帰的にコンテンツをリストアップする

ls -R コマンドを入力すると、すべてのファイルとディレクトリを、付随するサブディレクトリを含め最下層までリストアップします:

Screenshot-2020-09-01-at-9.04.56-AM
多くのファイルがある場合は、各ディレクトリのすべての単一ファイルを出力し終わるまでにとても長い時間がかかります。そのかわりに、次のようにしてディクトリをコマンドに挿入することで指定できます: ls Downloads -R

コンテンツをサイズと一緒にリストアップする

ls -s コマンドを入力すると (s は小文字です) 、ファイルまたはディレクトリをサイズと一緒にリストアップします:

Screenshot-2020-08-21-at-12.30.19-PM

コンテンツをロングフォーマットでリストアップする

ls -l コマンドを入力すると、ディレクトリのコンテンツの以下の項目を表の形式でリストアップします:

  • コンテンツのパーミッション
  • ハードリンク数
  • 所有者
  • 所有グループ
  • バイトで表したサイズ
  • コンテンツの最終変更日/時間
  • ファイルまたはディレクトリの名前
Screenshot-2020-08-20-at-10.52.37-PM

コンテンツを読み易いファイルサイズを含んだロングフォーマットでリストアップする

ls -lh コマンドを入力すると、ファイルやディレクトリを上記と同様の表の形式でリストアップしますが、それぞれのファイル/ディレクトリのサイズの表示が異なります:

Screenshot-2020-08-21-at-12.14.33-PM

ファイルやディレクトリのサイズが 1024 バイトより大きい場合にはバイト (B)、メガバイト (MB)、ギガバイト (GB)、テラバイト (TB) 表記でリストアップされることに注意してください。

隠れたコンテンツと一緒にコンテンツをリストアップする

ls -a コマンドを入力すると、隠しファイルや隠しディレクトリを含めたコンテンツをリストアップします。Linux では、. から始まるものはすべて隠しファイルと認識されます:

Screenshot-2020-08-21-at-11.12.26-AM

隠れたコンテンツを含めてコンテンツをロングフォーマットでリストアップする

ls -l -als -a -lls -la、もしくは ls -al のいずれかのコマンドを入力すると、隠しファイルや隠しディレクトリを含めたコンテンツを追加の情報と一緒に表の形式でリストアップします:

Screenshot-2020-08-21-at-12.17.01-PM

コンテンツをリストアップし日付と時間でソートする

ls -t コマンドを入力すると、最終変更日/時間で降順 (値の大きいものから小さいもの) に整列させたファイルやディレクトリのリストを表示します。

次のようにして -r フラグを追加することで整列する順番を逆にすることもできます: ls -tr:

Screenshot-2020-08-21-at-12.20.09-PM

コンテンツをリストアップしファイルサイズでソートする

ls -S (S は大文字です) コマンドを入力すると、ファイルサイズで降順 (値の大きいものから小さいもの) に整列させたファイルやディレクトリのリストを表示します。

次のようにして -r フラグを追加することで整列する順番を逆にすることもできます: ls -Sr:

Screenshot-2020-08-21-at-12.20.38-PM

コンテンツをリストアップし、その結果を単一ファイルへ出力する

ls > output.txt コマンドを入力すると、ls コマンドの出力を output.txt ファイルの中へ写します。-la などの前述のフラグはどれも使用できます — ここでのキーポイントは、結果はコマンドラインに表示されず、ファイルの中へ出力されることです。

その後で必要に応じてファイルを使用することができますし、cat output.txt と入力することでファイルの内容をコマンドラインに出力できます:

Screenshot-2020-09-01-at-9.12.59-AM

結び

必要に応じてファイルとディレクトリを一覧表示するための他のコマンドやその組み合わせがたくさんあり、それらを探索することもできます。ここでひとつ覚えておくべきことは、一度に複数のコマンドを組み合わせる機能です。

隠しファイルや隠しディクトリを含めコンテンツをロングフォーマットでリストアップし、ファイルサイズでソートしたいという場面を想像してみてください。入力するコマンドは ls -alS となります。これは ls -lls -als -S を組み合わせたものです。

コマンドを忘れてしまったりすべきことがわからなくなった場合は、ls --help または man ls を入力することでヘルプを表示できます。これにより ls コマンドが受け入れられるすべてのオプションと一緒にマニュアルが表示されます:

Screenshot-2020-09-01-at-9.57.37-AM

お読みくださいましてありがとうございました!