Hack 18. Find コマンド

find はよく使用されるコマンドです。
多くの状態に基づいて UNIX ファイルシステム内のファイルを検索します。
find コマンドの実践的な例をみてみましょう。

Syntax: find [pathnames] [conditions]


名前で指定した単語を含むファイルをどのように検索しますか?

次のコマンドはファイル名に mail をもつ /etc ディレクトリの下にあるすべてのファイルを検索します。

# find /etc -name "*mail*"


あるサイズ以上のすべてのファイルを検索するには?

次のコマンドは100MB 以上のシステム内のファイルすべてをリストします。

# find / -type f -size +100M

最近 x 日変更していないファイルを検索するには?

次のコマンドは現在のディレクトリの下で 60 日以上前に変更されたファイルすべてをリストします。

# find . -mtime +60


最近 x 日に変更しているファイルを検索するには?

次のコマンドは現在のディレクトリの下で最近 2 日間で変更されたファイルすべてをリストします。

# find . -mtime -2


拡張子 *.tar.gz をもち、100MB 以上のアーカイブファイルを削除するには?

間違ってファイルを削除したくないのであれば、
次のコマンドを実行している間注意してください。
もっともよい練習は、ls -l と同じコマンドを実行することです。
rm コマンドを実行する際に、どのファイルが削除されるかを確認できます。

# find / -type f -name *.tar.gz -size +100M -exec ls -l {} \;
# find / -type f -name *.tar.gz -size +100M -exec rm -f {} \;


最近 x 日間に変更されていないファイルすべてをアーカイブするには?

次のコマンドは、/home/jsmith directory 下で最近 60 日間変更されていないファイルをすべて検索し、
ddmmyyyy_archive.tar という形式で /tmp 下にアーカイブファイルを作成します。

# find /home/jsmith -type f -mtime +60 | xargs tar -cvf /tmp/`date '+%d%m%Y'_archive.tar`

midnight commander GUI を使用して、(find したファイルを含む)アクティビティに関連したたくさんのファイルを実行できます。
強力な Unix 用のテキストベースのファイルマネージャです。