カテゴリ: Linuxコマンド集 更新日: 2026/03/08

find -groupオプションの使い方を解説!初心者でもできる所有グループによるファイル検索

find -groupオプション|所有グループで検索する
find -groupオプション|所有グループで検索する

先生と生徒の会話形式で理解しよう

生徒

「Linuxで、特定のグループが所有しているファイルだけを探す方法ってありますか?」

先生

「あるよ!findコマンドの-groupオプションを使えば、所有グループを指定して検索できるんだ。」

生徒

「えっ、所有グループって何ですか?」

先生

「いい質問だね!それじゃあ、まずは『所有グループ』とは何か、そしてfind -groupの基本的な使い方を、順番に説明していくね。」

1. 所有グループとは?

1. 所有グループとは?
1. 所有グループとは?

Linux(リナックス)の世界では、すべてのファイルやフォルダ(ディレクトリ)に「誰が持ち主か」という情報が記録されています。これをパーミッション(権限)管理と呼びます。この持ち主には、大きく分けて所有ユーザー所有グループの2種類が存在します。

イメージで理解しよう!

例えば、学校の「図書室の本」を想像してみてください。

  • 所有ユーザー:その本を現在借りている「あなた」個人
  • 所有グループ:あなたが所属している「1年A組」というクラス全体

このように設定することで、「1年A組の人なら誰でも読んでOK(読み取り権限)」や「1年A組の係の人だけが書き込んでOK(書き込み権限)」といった、チーム単位での管理が可能になります。

実際に、自分の環境でファイルの詳細を確認してみましょう。ls -lというコマンドを使うと、現在のディレクトリにあるファイルが、どのグループに属しているかを表示できます。


ls -l
-rw-r--r-- 1 taro baseball 1024 Feb  3 12:00 members.txt

上記の実行結果を見てください。taroが所有ユーザー(個人)で、その隣にあるbaseball所有グループです。この「members.txt」というファイルは、野球部のメンバー全員で共有されている、ということがわかりますね。

ビジネスの現場では、「エンジニア部門」「営業部門」「人事部門」といった組織ごとにグループを作成し、機密情報が他部署から見えないように制御するのが一般的です。この記事で学ぶ-groupオプションは、まさにこの「組織やチーム」で管理されているファイルを見つけ出すために欠かせない機能なのです。

2. find -groupオプションの基本

2. find -groupオプションの基本
2. find -groupオプションの基本

findコマンドは、膨大なファイルの中から目的のものを瞬時に探し出せる強力なツールです。その中でも-groupオプションは、特定の所有グループに紐付いたファイルを検索する際に使用します。

基本となる書き方は非常にシンプルです。検索を始めたい場所(ディレクトリ)を指定し、その後に-group グループ名と続けるだけです。まずは、もっとも基本的な検索の例を見てみましょう。

実践的な具体例:開発チームのファイルを探す

たとえば、システム開発チームのメンバーで共有している「developers」グループが所有するファイルを探したい場合は、次のように入力します。プログラミング未経験の方でも、検索キーワードを指定する感覚で実行できます。


find /home/project -group developers
/home/project/main.py
/home/project/database.conf
/home/project/assets/logo.png

このコマンドを実行すると、/home/projectというフォルダの中(その下の階層も含む)をすべてチェックし、所有グループがdevelopersに設定されているファイルだけがリストアップされます。

もし、カレントディレクトリ(現在自分が作業している場所)から検索したい場合は、パスの部分に「.(ドット)」を使って、次のように実行することも可能です。


find . -group developers
./script.sh
./README.md

このように、-groupオプションを活用することで、特定のプロジェクトや部署ごとに管理されているファイルを一括で見つけ出せるようになります。複数のユーザーでサーバーを利用している環境では、非常に効率的な検索手法です。

3. グループ名がわからないときは?

3. グループ名がわからないときは?
3. グループ名がわからないときは?

「そもそも、どんなグループがあるのかわからない…」というときは、/etc/groupというファイルを見てみましょう。ここには、Linuxに登録されているすべてのグループ名が一覧で記載されています。


cat /etc/group
root:x:0:
daemon:x:1:
developers:x:1001:user1,user2
sales:x:1002:user3,user4

このように、グループ名(例:developers、sales)が表示されます。

4. 自分が所属するグループを確認するには?

4. 自分が所属するグループを確認するには?
4. 自分が所属するグループを確認するには?

自分がどのグループに所属しているかを調べたい場合は、groupsコマンドを使ってみましょう。


groups
user1 wheel developers

この例では、user1というユーザーはwheeldevelopersという2つのグループに所属していることがわかります。

5. ファイルの所有グループを確認するには?

5. ファイルの所有グループを確認するには?
5. ファイルの所有グループを確認するには?

特定のファイルがどのグループに属しているかを確認したいときは、ls -lコマンドを使いましょう。


ls -l sample.txt
-rw-rw-r-- 1 user1 developers 2048 Sep 16 10:00 sample.txt

developersと表示されている部分が「所有グループ」です。

6. グループID(GID)で検索する方法

6. グループID(GID)で検索する方法
6. グループID(GID)で検索する方法

-groupオプションでは、グループ名だけでなくGID(Group ID)を指定することも可能です。GIDは、グループごとに割り当てられた数字です。


find /path/to/search -group 1002
/path/to/search/sales_report.csv

このようにGIDを直接指定しても、グループ名と同じように検索できます。

7. よくある組み合わせ例

7. よくある組み合わせ例
7. よくある組み合わせ例

findコマンドでは、-groupオプションと他の条件を組み合わせることで、より細かい検索ができます。

  • 特定のグループでかつファイルサイズが大きいものを探す:

find /var/log -group admin -size +5M
/var/log/admin/error.log
  • 所有グループがstaffで、更新日が7日以内のファイル:

find /home/shared -group staff -mtime -7
/home/shared/projectA/plan.txt

8. 所有グループの変更(補足)

8. 所有グループの変更(補足)
8. 所有グループの変更(補足)

検索ではありませんが、chgrpコマンドを使えば、ファイルの所有グループを変更できます。


chgrp sales report.csv

このコマンドで、report.csvの所有グループをsalesに変更できます。

ただし、グループを変更するには、適切な権限(多くの場合はrootユーザー)または対象グループへの所属が必要です。

カテゴリの一覧へ
新着記事
New1
ファイルとディレクトリ操作
Linuxのファイルシステムとは?ディレクトリ構造を初心者向けにわかりやすく解説
New2
テキスト・データ処理
sortコマンドの使い方を完全ガイド!初心者でもわかるLinuxでテキストやデータを並べ替える基本
New3
ファイル・ディレクトリ操作
touch -mオプション|修正時刻だけを変更する方法を初心者向けに解説
New4
ファイル・ディレクトリ操作
touch -aオプション|アクセス時刻だけを変更する方法をやさしく解説
人気記事
No.1
Java&Spring記事人気No1
テキスト・データ処理
catコマンドとは?Linuxでファイル内容を表示・連結する基本
No.2
Java&Spring記事人気No2
テキスト・データ処理
grepコマンドとは?Linuxで文字列を検索する基本をやさしく解説!
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.4
Java&Spring記事人気No4
テキスト・データ処理
awk -fオプションの使い方を完全ガイド!初心者でもわかるLinuxテキスト処理の基本