「みんなの翻訳」は情報通信研究機構多言語翻訳研究室と東京大学図書館情報学研究室による共同プロジェクトであり、三省堂と国立情報学研究所連想情報学研究開発センターが開発に協力しています。
検索コマンドはLinuxシステムを管理する上でかなり重要な、使用頻度も高いコマンドだ。検索コマンドは文字通りファイルを「検索」するだけでなく、ファイルやディレクトリのリストを探し出したり、特定の条件にあてはまるファイルをさがすのにも役立つ。このコマンドをうまく使えば、ファイルパーミッション、ユーザー、グループ、ファイル形式、日付、サイズなど考え付く限りの基準でファイルを探し出すことができる。
我々編集部は、日々使用しているLinuxのfindコマンドから、とくに使うものや、その具体的な使い方について議論した。
ここでは、その討論の末に残った35の使用例を、5つのセクションに分けてお伝えしよう。これを見れば、findコマンドの基礎から応用までがわかるようになっている。
その1:Findコマンドの基本的な使い方
その2:実行権限からファイルを探す
その3:ファイルの所有者、グループから探す
その4:日付や時刻から探す
その5:サイズから探す
(別記事)その6:Linuxの複合ファイル名を探す
その1:Findコマンドの基本的な使い方
1.カレントディレクトリにあるファイルを名前で検索する
たとえば、「tecmint.txt」という名前のファイルをカレントディレクトリから探すなら、次のようにする。
# find . -name tecmint.txt
./tecmint.txt
2.ホームディレクトリにあるファイルを探す
/homeディレクトリの中から、「tecmint.txt」を探し出すには、次のようにする。
# find /home -name tecmint.txt
/home/tecmint.txt
3.大文字小文字を無視して、同じ名前のファイルを探す
たとえば、/homeディレクトリから「tecmint.txt」という名前のファイルをすべて探し出すには、
# find /home -iname tecmint.txt
./tecmint.txt
./Tecmint.txt
4.ディレクトリを名前で検索する
すべてのディレクトリ(/directory)から「Tecmint」というディレクトリを探すには、
# find / -type d -name Tecmint
/Tecmint
5.PHPファイルを名前で検索する
たとえば、「tecmint.php」という名前のphpファイルをカレントディレクトリからすべて探し出すには、
# find . -type f -name tecmint.php
./tecmint.php
6.ディレクトリからすべてのPHPファイルを検索する
# find . -type f -name "*.php"
./tecmint.php
./login.php
./index.php
その2:実行権限からファイルを探す
7.777実行権のファイルを見つける
777実行権がついた全てのファイルを表示するには、
# find . -type f -perm 0777 -print
8.777実行権がついていないファイルを見つける
# find / -type f ! -perm 777
9.644実行権がついた全てのSGIDファイルを探す
# find / -perm 2644
10.551実行権がついた全てのスティッキービット・ファイルを探す
# find / -perm 1551
11.すべてのSUIDファイルを探す
# find / -perm /u=s
12.すべてのSGIDファイルを探す
# find / -perm /g=s
13.すべての読み込み限定ファイルを探す
# find / -perm /u=r
14.すべての実行可能ファイルを探す
# find / -perm /a=x
15.777実行権のついたファイルを探し出し、それらに「chmod」で644実行権を設定する
# find / -type f -perm 0777 -print -exec chmod 644 {} \;
16.777実行権がついたディレクトリを探し出し、 「chmod」で755実行権を設定する
# find / -type d -perm 777 -print -exec chmod 755 {} \;
17.1つのファイルを探し出して、削除する
たとえば、「tecmint.txt」というファイルを探して削除するには、
# find . -type f -name "tecmint.txt" -exec rm -f {} \;
18.複数のファイルを探し出して、削除する
たとえば、「.mp3」あるいは「.txt」ファイルを探し出して削除するには、
# find . -type f -name "*.txt" -exec rm -f {} \;
OR
# find . -type f -name "*.mp3" -exec rm -f {} \;
19.すべての空白ファイルを見つける
# find /tmp -type f -empty
20.すべての空白ディレクトリを見つける
# find /tmp -type d -empty
21.すべての隠しファイルを見つける
# find /tmp -type f -name ".*"
その3:ファイルの所有者、グループから探す
22.特定のユーザーが所持している1つのファイルを探す
たとえば、root権ユーザーが所持している/rootディレクトリから、「tecmint.txt」というファイルを探すには、
# find / -user root -name tecmint.txt
23.特定のユーザーの全てのファイルを表示する
たとえば、ユーザー「Tecmint」の/homeディレクトリにある全てのファイルを表示するには、
# find /home -user tecmint
24.グループからファイルを探す
/homeディレクトリから「Developer」というグループのファイルを表示するには、
# find /home -group developer
25.ユーザーが所持している、特定の形式のファイルを表示する
たとえば、「Tecmint」というユーザーの/homeディレクトリにある、.txtファイルを表示するには、
# find /home -user tecmint -iname "*.txt"
その4:日付や時刻から探す
26.過去50日以内に変更(modify)があったファイルを探す
# find / -mtime 50
27.過去50日以内にアクセスがあったファイルを探す
# find / -atime 50
28.過去50以降~100日以内に変更があったファイルを探す
# find / -mtime +50 –mtime -100
29.この1時間以内に新規作成、削除(change)があったファイルを探す
# find / -cmin -60
30. この1時間以内に変更があったファイルを探す
# find / -mmin -60
31.この1時間以内にアクセスがあったファイルを探す
# find / -amin -60
その5:サイズから探す
32.50メガバイトのファイルを表示する
# find / -size 50M
33.50~100メガバイトのファイルを表示する
# find / -size +50M -size -100M
34.100メガバイトのファイルを探して削除する
# find / -size +100M -exec rm -rf {} \;
35.特定の形式のファイルを探して削除する
たとえば、10メガバイト以上の.mp3ファイルを削除するには、
# find / -type f -name *.mp3 -size +10M -exec rm {} \;
現在の位置: チームハンドブック 目次 >法的文書に署名する 法的文書への署名は、他社・他組織などに直接出向いてNDAsを取り扱った人物を除いては、Cレベル エクゼクティブのみが…2018-04-07 23:31:41
現在の位置:チームハンドブック 目次 このハンドブックは、GitLabという企業が、どのようにサービスを維持運営していくかを記したものだ。ここに書かれていることが、わが社の中核レ…2018-04-07 23:18:22
新しいドキュメント はこちらです。このドキュメントは旧式です。 GitLab Documentation > User documentation > Projects >GitLab Pages 説明書 …2018-04-06 16:52:11
GitLab Documentation > User documentation > Projects >GitLab Pages 説明書 GitLab Pagesなら、無料でウェブサイトをホスティングできる。 GitLabにプロジェクトレポジト…2018-04-06 16:50:36