「lsコマンド」の全オプション試し!!

「lsコマンド」の全オプション試し!!

いつもお世話になっているコマンド「ls」。

ファイル情報やディレクトリ情報を表示させるのに必要不可欠な「lsコマンド」は、linuxユーザなら意識することなく、いつでもごく自然に使っているのではないでしょうか?

しかし、「lsコマンド」の基本的な使い方ならまだしも、すべてのオプションをも理解しているユーザはごく僅かなのではないでしょうか?

今回は手元の仮想サーバにてlsコマンドの全オプションを試してみることにしました。

なお、今回の検証にあたって、実施した環境は以下のとおりです。

  • OS:CentOS Linux release 7.2.1511 (Core)
  • coreutilsバージョン:8.22
  • すべてmanページにて検証

はたして「知られていないオプション=使う必要のないオプション」ということなのでしょうか?
今回の検証で隠れたポテンシャルを秘めた“優れものオプション”が発見できるのでしょうか?

オプションなしでls

オプションの効果を確認するため、まずはlsコマンドだけを実施した結果は以下のとおりです。

-a (または–all)

オプションなしとは異なり、見えていなかった「.」で始まるファイルが表示される。

-A (または–almost-all)

オプション-aと比べ、「.」、「..」が表示されなくなった。

-b (または–escape)

エスケープ文字の前に「\」が表示される。

-B (または–ignore-backups)

「~」で終わるファイルが表示されなくなった。
バックアップファイルの語尾に「~」をつけるケースもあるんですね。

–color

1.”never”を指定した場合:

2.”auto”を指定した場合:

3.”always”を指定した場合:

表示結果に色がつかなくなったり、ついたりする。

-d (または–directory)

引数なしだと、現在のディレクトリを表示。

-f

オプション-aと同じものが表示されたが、色付きなし。また、表示順番も違う。

-F (またはclassify)

ディレクトリが分かるように語尾に「/」がつく。
シンボリックリンクには語尾に「@」がつく。

–file-type

オプション-Fと特に差異なし。

–format

1.”across”を指定した場合:

2.”commas”を指定した場合:

3.”horizontal”を指定した場合:

4.”long”を指定した場合:

5.”single-column”を指定した場合:

6.”verbose”を指定した場合:

7.”vertical”を指定した場合:

表示形式を変更できる。
スクリプトの処理などで使えそうですね。

–full-time (または-l –time-style=full-iso)

オプション-lと比べ、時間が詳細まで表示される。

-g

オプション-lと比べ、所有者が表示されない。

–group-directories-first

ディレクトリから表示。

–hide

パターンに渡した値とマッチングしたファイルを表示しない。

–indicator-style

1.”none”を指定した場合:

2.”slash”を指定した場合:

3.”file-type”を指定した場合:

4.”classify”を指定した場合:

デフォルト値とslash以外は、オプション-Fと特に差異なし。

-i (または–inode)

Iノード番号が表示。

-I (または–ignore)

オプション–hideと表示結果は同じ。

-k (または–kibibytes)

オプションなしと変わらず。

-l

ファイルごとの詳細情報が表示される。

–author (-lオプションと併用)

オプション-lの結果にauthorまで表示されるとのことだが、authorが何を意味するか分からず。
作成者を意味するようだが、chownで所有者を変えたところで、authorも変わっていた。

–block-size (-lオプションと併用)

指定した単位でブロックサイズを表示してくれる。
1G, 1Pとも表示されるので実サイズとは違うようですね。

-c (-lオプションと併用)

※tオプションまで追加すると、

表示される時刻が、mtime(ファイル内容変更時刻)からctime(ファイル情報変更時刻)に変わる。
tオプションも併用すると、ctime順に並び替えしてくれる。

-D (-lオプションと併用)

Emacs Dired modeにデザインされたアウトプットらしい。emacsは使ったことないので、これをどう使えるか不明。

-G (-lオプションと併用)

グループ名を非表示にする。

-h (または–human-readable, -lオプションと併用)

サイズを適切な単位に変えて表示する。

–si (-lオプションと併用)

オプション-hと似ているが、1024を1000扱いに変えて表示する。

-H (-lオプションと併用)

シンボリックリンクを指定した場合:

シンボリックリンクを指定した場合、リンク先のディレクトリ内を表示する。

どう使えるものか不明。

-L (-lオプションと併用)

シンボリックリンクが分からなくなりました。

-m

オプション–format=commasと同じ結果。

-n

所有者とグループ名がid番号に表示される。

-N

特に効果は見受けられませんでした。

-o

オプション-lGと同じ効果。

-p

オプション–indicator-style=slashと同じ効果。

-q

特に効果は確認できず。

–show-control-chars

特に効果は確認できず。

-Q

ファイル名を””で囲んで表示する。

–quoting-style

1.”literal”を指定した場合:

2.”locale”を指定した場合:

3.”shell”を指定した場合:

4.”shell-always”を指定した場合:

5.”c”を指定した場合:

6.”escape”を指定した場合:

Literal以外は、指定した値毎にファイル名を囲んで表示する。

-r (または–reverse)

Modify時刻が古いファイルから表示

オプションなしの結果を順番を逆にして表示する。

-R (または–recursive)

再帰的にファイル一覧を表示。

-s (または–size)

各ファイルの左に数字が表示される。
サイズと関係あるようだが、正確な意味は不明。

-S

ファイルサイズが大きい順に並び替え。

–sort

–time (-lオプションと併用)

1.”atime”(またはaccessまたはuse)を指定した場合:

2.”ctime”(またはstatus)を指定した場合:

ファイルの詳細の時刻部分を指定した時刻で表示。
ls -l結果だと、最後にファイルの内容が変わった時刻が表示される。

–time-style (-lオプションと併用)

1.”full-iso”を指定した場合:

2.”long-iso”を指定した場合:

3.”iso”を指定した場合:

4.”locale”を指定した場合:

5.”+FORMAT”を指定した場合:

5の例追加

ファイル詳細の時刻部分が指定値毎に表示形式が変わる。
+FORMATの場合は、「FORMAT」部分に入れた文字列やフォーマットに置き換わる。

-t (-lオプションと併用)

最後に内容を変更したファイルから順に表示。

-u (-lオプションと併用)

-tオプションと併用した場合:

ファイルへ最後にアクセスした時刻を表示。
オプション-tと併用するとアクセス順に並び替えて表示

-U

オプションなしと並び順が違う。効果不明。

-v

オプションなしと並び順が異なる。
ファイル名を基準にアルファベット順に並び変わった。

-w (または–width)

指定した値にあわせ、縦並びに表示。

-x

ファイルを横並びに表示。

-X

オプションなしと変わらず。

-1

1行に一つのファイルずつ表示。

まとめ

壮大なる検証結果の果てに見たものは……
いつかはやってみたいと思っていた「lsコマンド」全網羅検証。
やはり、普段使うオプションを除いて、全オプションを覚える必要はまったく “ない!” ことをあらためて実感しました。

しかし、並び替えオプションや表示形式を変更するオプションなどは、知っていて損はないというものも。そしてaccess timeやmodify time、change timeについては、元々知らなかったものの、知りさえすれば納得できるオプションでした。これは全網羅検証を行ったからこそ得られた成果ですね!

そこそこ精神力が必要でしたが、ちゃんとした知識と経験を得られたので、さらに他のコマンドにでもチャレンジしたいところです(^^♪

それまでに今回消費した精神力をチャージしておきますね! では~

コメント