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 用のテキストベースのファイルマネージャです。