find -lsオプションの使い方を完全解説!検索結果を詳細情報付きで確認しよう
生徒
「Linuxでファイルを検索するときに、もっと詳しい情報も一緒に見れたりしませんか?」
先生
「それなら、findコマンドの-lsオプションを使えば、検索結果と一緒にいろいろな情報を表示できますよ。」
生徒
「どんな情報が見られるんですか?」
先生
「ファイルのサイズや更新日時、パーミッションなどが一覧で見れるんです。実際に使い方を見てみましょう。」
1. findコマンドと-lsオプションとは?
findコマンドは、Linuxでファイルやディレクトリを検索するためのコマンドです。場所や名前、更新日時などの条件を指定して、目的のファイルを探すことができます。
その中でも-lsオプションは、「検索結果を詳細情報付きで表示する」ためのオプションです。
これは、ls -lコマンドのような表示を、検索結果に対して自動でつけてくれる機能です。
2. 実際にfind -lsを使ってみよう
まずは、自分のホームディレクトリ配下でfind -lsを使ってみましょう。これは、すべてのファイルとディレクトリを検索しながら、それぞれの詳細情報を表示するコマンドです。
find ~ -ls
1310769 4 -rw-r--r-- 1 user user 1123 9月 16 14:22 /home/user/example.txt
1310770 8 drwxr-xr-x 2 user user 4096 9月 15 09:01 /home/user/testdir
上記のように、検索結果ごとにファイルのパーミッション(読み書きの権限)、所有者、ファイルサイズ(バイト)、更新日時、ファイル名などが表示されます。
3. 表示される情報の見方を解説
-lsオプションで表示される情報は、以下のような項目です。
- ファイル番号(inode)
- ブロック数(ディスク上で使用しているブロック数)
- アクセス権(例:
-rw-r--r--) - リンク数(同じファイルを指す名前の数)
- 所有者(ユーザー名)
- グループ(所有グループ)
- ファイルサイズ(バイト)
- 更新日時(最終更新日と時刻)
- ファイル名
これらの情報を一目で確認できるのが-lsの便利なところです。
4. 名前で検索しながら詳細も表示する例
たとえば、「名前にreportが含まれるファイルを探して詳細を表示したい」といった場合は、次のように書きます。
find ~/Documents -name "*report*" -ls
1310772 8 -rw-r--r-- 1 user user 2048 9月 10 10:30 /home/user/Documents/monthly_report.txt
1310773 4 -rw-r--r-- 1 user user 1500 9月 9 17:45 /home/user/Documents/daily_report.txt
-nameオプションと-lsを組み合わせることで、条件に合うファイルの詳細を一気に見ることができます。
5. -lsとls -lの違いとは?
ls -lは指定したディレクトリの中身を一覧表示しますが、サブディレクトリの中身までは表示しません。
一方、find -lsは、ディレクトリの中を深くまで調べながら、すべてのファイルに対して詳細を表示します。
つまり、find -lsは「ls -lとfindのいいとこ取り」のような使い方ができるというわけです。
6. 特定の種類のファイルだけ表示する
-typeオプションを組み合わせることで、ファイルの種類を指定して検索することができます。
たとえば、通常のファイル(regular file)のみを対象にするには、以下のように指定します。
find ~/Downloads -type f -ls
1310780 4 -rw-r--r-- 1 user user 3400 9月 12 12:01 /home/user/Downloads/info.txt
1310781 8 -rw-r--r-- 1 user user 7200 9月 12 12:15 /home/user/Downloads/image.jpg
逆に、ディレクトリのみを対象にしたい場合は-type dを使います。
7. 使い方の注意点と便利な活用方法
-lsは標準出力として情報を出すだけなので、ファイルを変更したり削除したりはしません。安心して使える確認コマンドとして活用できます。
また、情報をファイルとして保存したい場合は、次のようにリダイレクトで書き出せます。
find ~/Documents -name "*.txt" -ls > list.txt
このようにして、あとでゆっくり確認したり、別の作業で使ったりすることもできます。