Linuxシステムにおける基本中の基本コマンドであるlsは、ファイルやディレクトリの一覧を表示するために広く使われています。このコマンドは、システム上での作業をする上で最も頻繁に使われるコマンドの一つであり、ファイルやディレクトリの存在確認、属性の確認など、日々の操作には欠かせないツールです。lsコマンドの使用法を理解し、様々なオプションを駆使することで、作業の効率を大幅に向上させることができます。
lsの基本的な使い方
lsコマンドの最も基本的な使用方法は、単にlsと入力し、実行することです。これにより、現在のディレクトリにあるファイルやディレクトリの一覧が表示されます。表示される情報はファイルやディレクトリの名前のみですが、これだけでも多くの場合において有用です。
ls
lsコマンドのオプション
lsコマンドは多くのオプションを持っており、これらを使うことでより詳細な情報を得ることができます。以下に、オプションを紹介します。
-a,--all: 隠しファイルやディレクトリを含む、すべてのファイルを表示します。-A,--almost-all:.と..を除くすべてのファイルを表示します。-d,--directory: ディレクトリ自体の情報を表示し、内容をリストしません。-f: ソートせずに出力します。また、-aUオプションが隠れて有効になります。-g:-lと似ていますが、所有者の情報は表示されません。- -h, –human-readable: ファイルサイズを人間が読みやすい形式で表示
-i,--inode: 各ファイルのinode番号を表示します。-l: 詳細表示モードでファイル情報をリストします。-n,--numeric-uid-gid:-lオプションと似ていますが、ユーザーIDとグループIDを数値で表示します。-r,--reverse: ソート順を逆にします。-R,--recursive: サブディレクトリを再帰的に表示します。-s,--size: 各ファイルの割り当てサイズを表示します。-S: サイズに基づいてファイルをソートします。-t: 最終変更時刻でファイルをソートします。-u: アクセス時刻に基づいてファイルをソートします。-x: エントリを複数の行に並べる代わりに、エントリを行に横に並べます。-1: 各ファイルを独自の行に表示します。
lsの利用例
lsコマンドは、その基本的な使用方法だけではなく、さまざまな応用が可能です。例えば、特定のパターンにマッチするファイルのみを表示したり、ディレクトリの中のファイルを再帰的にリストアップすることができます。
基本的なlsコマンド構文
$ ls -rlth
-rw-r--r-- 1 root root 9.2K 4月 20 20:19 monit.log
-rw------- 1 root utmp 30M 4月 20 23:24 btmp
drwxr-xr-x. 2 root root 4.0K 4月 20 23:53 sa
-rw------- 1 root root 12M 4月 20 23:54 secure
-rw-rw-r-- 1 root utmp 297K 4月 20 23:54 wtmp
-rw-r--r-- 1 root root 287K 4月 20 23:54 lastlog
-rw------- 1 root root 2.5M 4月 20 23:55 messages
-rw------- 1 root root 1.7M 4月 20 23:55 cron
-rw------- 1 root root 2.5M 4月 20 23:55 maillog
最もベーシックとなる、lsコマンドの利用方法です。詳細表示を行い(l)、更新時刻のタイムスタンプが新しいものを一番下に来るようにソート(rt)します。大体の場合、更新日付が近いものを利用するので、並び順を逆にして、最下段に新しいものが来るようにしましょう。また、ファイルサイズを見やすい形(キロバイト:K、メガバイト:M、ギガバイト:G)などの単位で表示させています。ファイルサイズを気にしない場合は、「ls -rlt」を基本コマンドとしてもいかもしれません。
特定パターンのファイルのみ表示
$ ls -rlt mail*
-rw------- 1 root root 7202733 3月 17 03:12 maillog-20240317
-rw------- 1 root root 2373460 3月 24 03:31 maillog-20240324
-rw------- 1 root root 2180097 3月 31 03:35 maillog-20240331
-rw------- 1 root root 2545163 4月 7 03:09 maillog-20240407
-rw------- 1 root root 2588268 4月 14 03:42 maillog-20240414
-rw------- 1 root root 2544300 4月 21 00:01 maillog
ファイルのパターンマッチングを行います。lsとワイルドカード(例:*,?)を組み合わせて使用することで、特定のパターンにマッチするファイルのみを表示できます。
似たような方法で、grepと組み合わせて利用することも可能です。
$ ls -rlt |grep mail
-rw------- 1 root root 7202733 3月 17 03:12 maillog-20240317
-rw------- 1 root root 2373460 3月 24 03:31 maillog-20240324
-rw------- 1 root root 2180097 3月 31 03:35 maillog-20240331
-rw------- 1 root root 2545163 4月 7 03:09 maillog-20240407
-rw------- 1 root root 2588268 4月 14 03:42 maillog-20240414
-rw------- 1 root root 2544300 4月 21 00:01 maillog
サブディレクトリを含めたファイル表示
$ ls -R
.:
sub1 sub2 test
./sub1:
sample1.txt
./sub2:
sample2.txt
ディレクトリの再帰的リスト: -Rオプションを使用すると、サブディレクトリを含むすべてのディレクトリとファイルが表示されます。
対象ファイルに対して何かしらの処理
$ ls -R */*.txt|xargs file
sub1/sample1.txt: empty
sub2/sample2.txt: empty
ファイル名のみを取得し、xargsで次のコマンドの引数へ渡します。例文であれば、サブディレクトリ含めて拡張子が.txtで終わるファイルに対して、fileコマンドを実行します。実際には、rmコマンドでファイル削除をするなどで利用するシチュエーションが多くあります。
まとめ
lsコマンドはLinuxシステムを扱う上で基本となるコマンドの一つです。その基本的な使用法から応用技術まで、このコマンドをマスターすることは、Linux操作の効率を大幅に向上させることに繋がります。今回紹介したオプションや使用例を活用して、日々の作業をよりスムーズに進めていきましょう。

コメント