ターミナルコマンドls(list segments)の知っておくと便利なオプションを説明します。
操作したいディレクトリに何が存在し、何のファイルがあるのか把握をしないといけません。
lsコマンドはそんな時に基準の一つとなるディレクトリ等の情報を表示します。
ターミナル操作がメインになるのでよくわからない場合は下記を御覧ください。
パーミッション(権限)の読み方や変更方法を知りたい場合はこちらの記事が参考になると思います。
lsコマンドのオプションとは
「ls」コマンドにはディレクトリ名やファイル名を表示すると共に、色々なオプションを追加することにより、表示内容を変更することができます。これにより該当ファイルのより詳細な情報を取得できます。
lsコマンドの入力例
「ls」+「オプション」+「ファイル、ディレクトリ名」
基本的にはこのような入力方法になります。(+は半角スペース)
デスクトップ上のファイルを詳細に(-lオプション)確認する時の例です。
オプションの種類は後述しますが、オプションは複数使用することもできます。
「-loa」等付けたいオプションを追加すれば表示します。(オプションの内容によっては機能が上書きされます)
ls -l ~/Desktop
lsコマンドのオプション
lsコマンドのオプションは多岐に渡ります。
自分の環境にあったオプションを使用してみてください。
-a、-A
「-a」は隠しファイルを含め、ファイルを全表示します。
「-A」は-aと同じく隠しファイルを表示しますが、特殊な形式の「.」(カレントディレクトリ)と「..」(ペアレントディレクトリ)を表示しません。
-l
アクセス権、リンク数、所有者名、グループ名、サイズ、最終更新日時、名前の詳細で表示します。
多用するオプションですね。
以下(赤字で記載)は「-l」オプションと一緒に使用するオプションです。
-@
オプション「-l」を追加するとパーミッションの末尾に(@)が付いたディレクトリやファイルがありますが、これらには拡張属性が設定されています。(-@)オプションを追加すると割り当てられている拡張属性を表示します。
ls -l@
drwx------@ 12 Macuser staff 408 1 25 10:59 Dropbox
com.apple.FinderInfo 32
-e
同じようにオプション「-l」を追加するとパーミッションの末尾に「+」が付いたディレクトリがあります。
このようなディレクトリには「ACL」(Access Control List、アクセス制御リスト)による特別なアクセス権限の設定がされているディレクトリです。(Mac OS X 10.4以降で追加)
例えば、DesktopやApplication等の重要なディレクトリは削除できないように、OSによって制御されています。
このオプションはACL設定がされているディレクトリを表示します。
ls -le
drwx------+ 5 Macuser staff 170 1 25 11:22 Desktop
0: group:everyone deny delete
通常、あまり追加したりすることはないかもしれませんが、「chmod」コマンドでデイレクトリを削除できないようにアクセス権限(ACL)の設定を行えます。
以下はホームディレクトリの「Applications」ディレクトリにACLの設定を行う例です。
chmod +a "group:everyone deny delete" ~/Applications
設定したアクセス権限を解除するのは、以下のように実行します。
chmod -RN ~/Applications
-h
「-l」オプションで表示されるサイズを適正な単位で表示します。
ls -lh
drwx------@ 67 Macuser staff 2.2K 1 22 22:00 Library
-u
「-l」オプションで表示される最終更新日時の代わりに最終アクセス日を表示します。
ls -lu
drwx------@ 67 Macuser staff 2278 1 25 18:39 Library
-U
「-l」オプションで表示される最終更新日時の代わりにディレクトリ、ファイルが作成された年、月、日時を表示します。
ls -lU
drwx------@ 67 D-Box staff 2278 8 7 2014 Library
-F
ファイル、ディレクトリ名の末尾に種類を意味する記号を表示します。 ディレクトリは「/」、シンボリックリンクは(@)、実行可能形式ファイルは「*」等があります。
オプションの「l」と一緒に使用するとシンボリックリンクの場合はリンク元のファイルも表示します。
ls -lF
lrwxr-xr-x 1 Macuser staff 19B 11 22 2016 Desktop@ -> ../../../../Desktop
drwx------ 3 Macuser staff 102B 11 22 2016 Documents/
lrwxr-xr-x 1 Macuser staff 21B 11 22 2016 Downloads@ -> ../../../../Downloads
drwx------ 28 Macuser staff 952B 11 22 2016 Library/
lrwxr-xr-x 1 Macuser staff 18B 11 22 2016 Movies@ -> ../../../../Movies
lrwxr-xr-x 1 Macuser staff 17B 11 22 2016 Music@ -> ../../../../Music
lrwxr-xr-x 1 Macuser staff 20B 11 22 2016 Pictures@ -> ../../../../Pictures
-t
最終更新日時を最近のものから順番に並び替えて表示します。また、他のオプションを追加して出力内容を変更している場合はその日時を並び替えます。
ls -lt
drwx------+ 5 Macuser staff 170 1 25 11:22 Desktop
drwxr-xr-x@ 5 Macuser staff 170 1 25 11:22 Applications (Parallels)
drwx------@ 12 Macuser staff 408 1 25 10:59 Dropbox
drwx------+ 6 Macuser staff 204 1 24 23:09 Downloads
-R
サブディレクトリの内容も表示します。
出力内容が多くなりがちなので「less」コマンドでページャで確認するかテキストに出力したほうが良いと思います。
下の例はホームディレクトリのドキュメント(書類)直下のファイル情報を出力する場合です。
ls -lR ~/Documents/ | less ⬅︎ ページャで表示
ls -lR ~/Documents/ > Documents.txt ⬅︎ テキストに出力
-S
ディレクトリ、ファイルのサイズが大きいものから順番に並び替えて表示します。
「-l」オプションと組み合わせるとこのように表示します。
ls -lS
drwx------@ 67 Macuser staff 2278 1 22 22:00 Library
drwx------+ 15 Macuser staff 510 1 20 23:43 Documents
drwx------@ 12 Macuser staff 408 1 25 10:59 Dropbox
drwx------+ 9 Macuser staff 306 1 13 00:17 Pictures
-r
ディレクトリ、ファイル名を降順に表示します。
-d
ディレクトリを指定した場合、通常該当ディレクトリ内の情報を表示しますが、「-d」オプションを追加すると指定したディレクトリの情報を表示します。「-l」オプションと組み合わせてドキュメント(書類)を指定するとこのような表示になります。
ls -ld Documents
drwx------+ 15 Macuser staff 510 1 20 23:43 Documents
-o
「-l」オプションと同じく詳細を表示しますが、「グループ名」を省略して表示します。
-g
「-l」オプションと同じく詳細を表示しますが、「所有者名」を省略して表示します。
-G
ディレクトリ、ファイルの種類に応じて色を変えて表示します。
lsコマンドオプション一覧
説明したオプションを一覧にまとめました。
オプション | 機能 |
---|---|
-a | 隠しファイル含めファイル全表示 |
-A | 「.」と「..」以外の隠しファイル含め全表示 |
-l | 詳細で表示 |
-@ | 拡張属性の内容を表示 |
-e | ACL設定がされているディレクトリを表示 |
-h | サイズを適正な単位で表示 |
-u | 最終アクセス日を表示 |
-U | 作成された日時を表示 |
-F | 名前の末尾に種類を意味する記号を表示 |
-t | 日時を最近のものから並び替えて表示 |
-R | サブディレクトリの内容も表示 |
-S | サイズの大きいものから並び替えて表示 |
-r | 名前を降順に表示 |
-d | 指定したディレクトリの情報を表示 |
-o | グループ名を省略して詳細表示 |
-g | 所有者名を省略して詳細表示 |
-G | 種類に応じて色を変更して表示 |
このようにたくさんのオプションがありますが、他にも色々な機能を持ったオプションが有ります。
英語表記なので忘れないためにここに抜粋しましたが、興味がある方は下記のコマンドで「ls」の詳細が見れますので確認してみてください。
よく使うオプションが変わらないのであればエイリアスを設定すると毎回オプションを入力する手間も省けて、非常に便利です。
興味がある方はこちらのページで紹介していますので御覧ください。