find -userオプションの使い方を完全ガイド!初心者でもわかる所有者ユーザーでファイルを検索する方法
生徒
「Linuxで、ある特定の人が作ったファイルだけを探すことってできますか?」
先生
「はい、findコマンドの-userオプションを使えば、そのユーザーが所有しているファイルだけを検索できますよ。」
生徒
「それって、管理者が誰のファイルかを確認したい時に使えそうですね!」
先生
「そのとおりです!それでは、-userオプションの基本から応用まで、わかりやすく解説していきましょう。」
1. findコマンドとは?
findコマンドは、Linuxでファイルやディレクトリを探すための便利なコマンドです。大量のファイルの中から、条件に合ったものだけを見つけることができます。
名前で検索したり、更新日やサイズ、そして所有者(オーナー)で検索することも可能です。
2. -userオプションとは?
-userオプションは、「このユーザーが所有しているファイルだけを探して!」という指示をするためのものです。
所有者(オーナー)とは、ファイルやディレクトリを作成したユーザーのことです。Linuxでは、ファイルごとに誰が所有者なのかが明確に記録されています。
3. 基本構文と使い方
-userオプションの基本的な書き方はこちらです。
find [検索する場所] -user [ユーザー名]
たとえば、今いる場所(カレントディレクトリ)から、ユーザー「taro」が所有しているファイルを探したいときは次のようにします。
find . -user taro
このコマンドで、「taro」さんが作ったファイルだけが一覧で表示されます。
4. 使用例とコマンド実行結果
4-1. 一般ユーザーで「taro」のファイルを検索
find . -user taro
./report.txt
./work/memo.txt
./images/photo.jpg
4-2. ルートユーザーが「www-data」の所有ファイルを探す
find /var/www -user www-data
/var/www/index.html
/var/www/html/style.css
5. よくある使い方の組み合わせ
5-1. 所有者が「taro」かつサイズが1MB以上のファイルを検索
find . -user taro -size +1M
ユーザー「taro」のファイルのうち、1MBを超える大きなファイルだけを見つけたいときに使えます。
5-2. 所有者「taro」かつ名前に「.log」を含むファイル
find . -user taro -name "*.log"
「taro」さんが作ったログファイル(拡張子が.log)だけを探します。
6. 所有者ユーザー名を調べるには?
自分のパソコンやLinuxサーバーで使われているユーザー名が分からないときは、ls -lコマンドで確認できます。
ls -l
-rw-r--r-- 1 taro staff 1234 Sep 15 10:00 memo.txt
この例では、「taro」が所有者で、「staff」がグループ名です。ファイルの左から3番目がユーザー名です。
7. -userと一緒によく使われるオプション
7-1. -type f(ファイルのみ)
所有者が「taro」で、ファイルだけを検索したいときに使います。
find . -user taro -type f
7-2. -type d(ディレクトリだけ)
所有者が「taro」で、ディレクトリだけを探したい場合はこちら。
find . -user taro -type d
7-3. -groupオプションとの併用
ユーザーだけでなく、グループ所有者も条件に加えたいときは、-groupオプションと組み合わせます。
find . -user taro -group staff
このコマンドでは、「taro」さんが所有者で、グループが「staff」であるファイルを探します。
8. UID(ユーザーID)での検索も可能
ユーザー名の代わりにUID(ユーザーID)を使って検索することもできます。
find . -uid 1000
UIDはLinuxシステム内でユーザーを識別する番号で、/etc/passwdファイルを見ると確認できます。ただし初心者の方は通常はユーザー名を使うほうが簡単です。