👴

lsコマンドのオプションなんだっけな

2022/11/07に公開

どうもoreoです。

よく使うlsコマンドですが、オプションをいつも忘れるので、ここで一度纏めておきます。

1 概要

1-1 基本的な使い方

lsコマンドを使うとファイルやディレクトリを一覧表示することができます。

例として、以下のようなディレクトリ構成を考えます。

├── .hidden
├── sample1.txt
├── sample2.txt
├── sample3.css
├── sample4.html
└── test
    ├── test1.txt
    ├── test2.txt
    └── test3.txt

lsコマンドを実行するとカレントディレクトリ配下の一覧が見れます。

$ ls
sample1.txt  sample2.txt  sample3.css  sample4.html test

ファイルを指定するとパスが返ってきます。

$ ls sample1.txt
sample1.txt

$ ls test/test1.txt 
test/test1.txt

存在しないファイル名やファイルパスを渡すとエラーになります。

$ ls sample100.txt
ls: sample100.txt: No such file or directory

1-2 ワイルドカードについて

シェルにはワイルドカードと呼ばれる機能があり、複数のファイルを指定する時に便利です。例えば、*は任意の文字列を表し、?は任意の1文字を表します。txtファイルだけを確認したい場合は、lsコマンドと組み合わせて*.txtで検索できます。

$ ls *.txt
sample1.txt sample2.txt

1-3 よく使いそうなオプション

-aオプション

ファイル名が.で始まる隠しファイルを含めて一覧表示してくれます。

$ ls -a
.            .hidden      sample2.txt  sample4.html
..           sample1.txt  sample3.css  test

-lオプション

ファイルの詳細情報も表示してくれます。

$ ls -l
total 32
-rw-r--r--  1 hogeuser  staff   19 11  2 09:49 sample1.txt
-rw-r--r--  1 hogeuser  staff  114 11  2 09:49 sample2.txt
-rw-r--r--  1 hogeuser  staff   56 11  2 09:49 sample3.css
-rw-r--r--  1 hogeuser  staff  270 11  2 09:49 sample4.html
drwxr-xr-x  6 hogeuser  staff  192 11  2 08:39 test

-Rオプション

サブディレクトリの中身も全て表示してくれます

$ ls -R
sample1.txt  sample2.txt  sample3.css  sample4.html test

./test:
test1.txt test2.txt test3.txt

-1オプション

縦一列で表示してくれます。

$ ls -1
sample1.txt
sample2.txt
sample3.css
sample4.html
test

1-4 その他オプション

-hオプション

人が読める形で容量を表示します。-l-sと組み合わせて使います。ちなみに-sは容量を表示するオプションです。

$ ls -l -h
total 32
-rw-r--r--  1 hogeuser  staff    19B 11  2 09:49 sample1.txt
-rw-r--r--  1 hogeuser  staff   114B 11  2 09:49 sample2.txt
-rw-r--r--  1 hogeuser  staff    56B 11  2 09:49 sample3.css
-rw-r--r--  1 hogeuser  staff   270B 11  2 09:49 sample4.html
drwxr-xr-x  6 hogeuser  staff   192B 11  2 08:39 test

👆のコマンドは、ls -lhでも同じ結果になります。

-rオプション

逆順で表示してくれます。

$ ls -r
test    sample4.html sample3.css  sample2.txt  sample1.txt

-tオプション

最新の更新時間順で表示してくれます。

$ ls -t
sample3.css  sample4.html test         sample2.txt  sample1.txt

-Sオプション

サイズの大きい順に表示してくれます。

$ ls -S
sample4.html test   sample2.txt  sample3.css  sample1.txt

-mオプション

コンマ区切りで表示してくれます

$ ls -m
sample1.txt, sample2.txt, sample3.css, sample4.html, test

3 最後に

手を動かして纏めてみると忘れないですね。

4 参考

https://man7.org/linux/man-pages/man1/ls.1.html

Discussion