Linuxでファイルの所有者で検索したいときは find コマンドの-userオプションを使う

この記事は約3分で読めます。
スポンサーリンク
スポンサーリンク

Linuxでファイルの所有者で検索したいときは find コマンドの-userオプションを使う

ファイルやフォルダの所有者で検索したいとき、find コマンドを使います。

findでファイルの所有者で検索するには-userオプションを使う

基本

find ディレクトリ名 -user ユーザ名 で検索できます。

例えば、/var/www/html/eccube ディレクトリ以下で、apache が所有しているファイル、フォルダの一覧を表示するには、

のように使います。下図に使用例の結果を示します。

 

結果をリスト表示したいときは-lsオプション

-lsオプションをつけると、 ls -l  のようなリスト表示になります。man find でマニュアル見ると、正確には、 ls -dils  フォーマットでの出力です。

下のリストが使用例です。

所有者でないファイルを表示したいときは、オプションに 条件否定の !

逆に、特定のユーザの所有者でないファイルを表示したいときは、条件を否定する ! を付けます。

例えば、ユーザ apache が所有していないファイルを表示したいとき、

のようになります。

下が表示例です。-ls もつけてます。

特定のディレクトリを除外したいときは、オプションで除外条件を追加

先ほどの例で、.github ディレクトリを除外したいとします。

この時「.github という名前のディレクトリだったら表示しない、そうじゃなかったら、所有者 xxx のファイル、ディレクトリを表示する」というように、条件に「表示しない」という除外オプションを追加します。

具体的には以下のようにします。

ここで、 -type d  は、ディレクトリを意味し、 -name .github は、.githubという名前を意味します。そして -prune は、表示・調査を除外するという意味です。ここまでのオプションをまとめると、「.githubという名前のディレクトリは表示・調査を除外する」という意味になります。

そして、-o が OR条件を意味するのですが、単に「または」の意味ではありません。

(※プログラミングの世界では頻繁に)ORは「そうでなければ以下を実施」の意味になります。

その結果、.github ディレクトリ以外では、今まで通り「! -user apache」がチェックされ、ユーザ apache の所有していないファイル・ディレクトリを表示します。

下にこの例の実行結果を示します。

先ほどとちがい、.github の内容が表示されていないですね。

まとめ

Linuxでファイルの所有者で検索したいとき、findコマンドを使いましょう。

 

この記事が気に入ったら
いいね ! しよう

コメント