LoginSignup
0
0

この記事を書くきっかけ

ディレクトリにどのファイルが入っているかを表示してくれるlsコマンド。実際によく使用します。しかし、ただlsと打ち込むことがほどんどで、他にlsコマンドでできることをよく知りません。せっかくなので、lsコマンドをうまく使いこなしたいと思い、オプションをまとめてみました。

lsコマンドのオプションは、調べてみるとかなりの量がありましたので、知っておいたら便利そうだな〜と思うものだけをピックアップしました

lsコマンドの基礎情報

コマンド:ls
説明:ファイルやディレクトリの一覧を表示する
書式:ls [オプション] [パス]
用途:ディレクトリの内容を確認するために使用されます。ファイルやディレクトリの詳細情報や属性を表示することができます。
パスの指定:パスを指定しない場合、カレントディレクトリの内容が表示されます。

lsコマンドのオプション

option 説明
-a 隠しファイルを含め、すべてのファイルを表示する
-A 「.」「..」以外のすべてのファイルを表示する
-d ディレクトリそのものの情報を表示する
-F ディレクトリは「/」、シンボリックリンクは「@」、実行可能ファイルは「*」を表示する
-G ファイルやディレクトリを色分けして表示する
-h サイズの単位を表示する([-l]オプションを同時に指定する)
-l 詳細情報を表示する
-r 逆順に表示する
-S サイズの大きい順にソートして表示する
-s サイズをブロック単位で表示する
-t 修正時刻順にソートして表示する

lsコマンド逆引き

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

コマンド:ls [ディレクトリのパス]

$ ls ~/Documents
project1		report.pdf		notes.txt
project2		data			scripts

ファイルとディレクトリを区別して表示したい

コマンド:ls -F [ディレクトリのパス]

$ ls ~/Documents
project1/		report.pdf		notes.txt
project2		data			scripts

隠しファイル(ドットファイル)も含めてすべてのファイルを表示したい

コマンド:ls -a

$ ls -a ~/Documents
.               ..              .hiddenfile     project1
report.pdf      notes.txt       project2        data
scripts

「.」「..」はいらないので、それ以外のすべてのファイルを表示したい

コマンド:ls -A

$ ls -A ~/Documents
.hiddenfile     project1        report.pdf      notes.txt
project2        data            scripts

ファイルやディレクトリの詳細情報を表示したい

コマンド:ls -l

$ ls -l ~/Documents
total 12
drwxr-xr-x 2 user user 4096 Jan 1 00:00 data
drwxr-xr-x 2 user user 4096 Jan 1 00:00 project1
drwxr-xr-x 2 user user 4096 Jan 1 00:00 project2
-rw-r--r-- 1 user user 2048 Jan 1 00:00 report.pdf
-rw-r--r-- 1 user user 1024 Jan 1 00:00 notes.txt
drwxr-xr-x 2 user user 4096 Jan 1 00:00 scripts

各ファイル・ディレクトリの詳細の見方

1. 最初の文字(-)はファイルタイプを示します。
-: 通常のファイル
d: ディレクトリ
l: シンボリックリンク
c: キャラクターデバイスファイル
b: ブロックデバイスファイル

2. 次の9文字(はファイルのパーミッションを示します。

  • 最初の3文字:所有者(user)の権限(読み取りr、書き込みw、実行x)
  • 次の3文字:グループ(group)の権限(読み取りr、書き込みw、実行x)
  • 最後の3文字:その他のユーザー(other)の権限(読み取りr、書き込みw、実行x)
    • 9文字の続きに@や+がある場合。
      • @:ファイルやディレクトリに拡張属性(Extended Attributes)が存在することを示します。
      • +:ファイルやディレクトリにACL(アクセス制御リスト)が設定されていることを示します。
-rw-r--r-- 1 user user 2048 Jan 1 00:00 report.pdf

この例では、
所有者(user)の権限(rw-):読み取り(r)、書き込み(w)。実行(x)の権限はない。
グループ(group)の権限(r--):読み取り(r)のみ。書き込み(w)や実行(x)の権限はない。
その他のユーザー(other)の権限(r--):読み取り(r)のみ。書き込み(w)や実行(x)の権限はない。

3. ハードリンクの数
ディレクトリの場合、この数はそのディレクトリ内のサブディレクトリの数を含むリンクの数を表示します。

4. 所有者
5. グループ
6. ファイルサイズ
7. 最終更新日時
8. ファイル名


ディレクトリそのものの情報を表示したい

コマンド:ls -dl

$ ls -dl ~/Documents
drwxr-xr-x 2 user user 4096 Jan 1 00:00 /home/user/Documents

ファイルのサイズの単位を表示したい

コマンド:ls -hl

$ ls -hl ~/Documents
total 12K
drwxr-xr-x 2 user user 4.0K Jan 1 00:00 data
drwxr-xr-x 2 user user 4.0K Jan 1 00:00 project1
drwxr-xr-x 2 user user 4.0K Jan 1 00:00 project2
-rw-r--r-- 1 user user 2.0K Jan 1 00:00 report.pdf
-rw-r--r-- 1 user user 1.0K Jan 1 00:00 notes.txt
drwxr-xr-x 2 user user 4.0K Jan 1 00:00 scripts

ファイルやディレクトリを色分けして表示したい

コマンド:ls -G

$ ls -G ~/Documents
data        project1    report.pdf  notes.txt   project2    scripts

一般的な色分けの例

  • ディレクトリ: 青
  • シンボリックリンク: シアン(淡い青)
  • 実行可能ファイル: 緑
  • 圧縮ファイル(例:.zip、.tar.gz): 赤
  • 画像ファイル(例:.jpg、.png): マゼンタ(紫)
  • ビデオファイル(例:.mp4、.mkv): マゼンタ(紫)
  • 通常のファイル: 白または端末のデフォルト色

ファイルやディレクトリを名前の逆順に並べ替えてして表示したい

コマンド:ls -r

$ ls -r ~/Documents
scripts     project2    notes.txt   report.pdf  project1    data

ファイルサイズの大きい順に並べ替えて表示したい

コマンド:ls -S

$ ls -S ~/Documents
report.pdf  project1    project2    data        notes.txt   scripts

ファイルサイズをこのように仮定すると上記のような結果になります。

  • report.pdf - 2MB
  • project1 - 1.5MB
  • project2 - 1.5MB
  • data - 1MB
  • notes.txt - 512KB
  • scripts - 256KB

サイズをブロック単位で表示したい

コマンド:ls -s

$ ls -s ~/Documents
3 data       4 project1    6 report.pdf  2 notes.txt   5 project2    1 scripts

前提条件

  • 1ブロック = 512バイト

ファイルサイズの例

  • data:1500バイト
  • project1:2048バイト
  • report.pdf:3000バイト
  • notes.txt:1000バイト
  • project2:2500バイト
  • scripts:512バイト

ブロック数の計算
各ファイルのサイズに基づいて、必要なブロック数を計算します。ファイルシステムはブロック単位でディスクスペースを割り当てるため、ファイルサイズを512バイトで割り、端数が出た場合は切り上げます。

  • data:1500バイト
    1500 / 512 ≈ 2.93 → 3ブロック
  • project1:2048バイト
    2048 / 512 = 4ブロック
  • report.pdf:3000バイト
    3000 / 512 ≈ 5.86 → 6ブロック
  • notes.txt:1000バイト
    1000 / 512 ≈ 1.95 → 2ブロック
  • project2:2500バイト
    2500 / 512 ≈ 4.88 → 5ブロック
  • scripts:512バイト
    512 / 512 = 1ブロック

修正時刻順に並べ替えて表示したい

コマンド:ls -t

$ ls -t ~/Documents
data        project1    report.pdf  notes.txt   project2    scripts

各ファイルの修正時刻の想定
data:2024年7月5日 14:30
project1:2024年7月5日 14:00
report.pdf:2024年7月5日 13:00
notes.txt:2024年7月4日 18:00
project2:2024年7月3日 20:00
scripts:2024年7月2日 10:00

まとめ

lsコマンドはlsと打ち込む以外に使ってきませんでした。今回、いろんなオプションがあると知りました。特にls -als -lは便利だと思います。自分パソコンでいろいろ試してみて、使いこなせるようになりたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0