ファイルをファイル名で探す – find


find コマンドを使う。

例えば、今いるディレクトリ (. で表します) を検索

find . -name ‘hoge*’ -print

もしくは、

find .  | grep ‘hoge*’

など。

” でくくっとかないと、シェルが、カレントディクレクトリにある hoge* を探して、その結果を渡してしまって意図しない結果に。” でくくらず、hoge¥* や “hoge*” でもよい。

“” でくくった場合は、環境変数が展開されます。

例えば、echo “hoge$PATH” と echo ‘hoge$PATH’ の違いを見てみればわかると思います。


このコマンド、-exec オプションを使うと、見つけたファイルに対して、コマンドを実行させたり、ファイルを削除したりできます。

find . -name ¥*.bak -exec ls -l  {} ¥;

≈find . -name ¥*.bak -delete

などのように使います。

前者の例では、{} に検索に一致したファイル名が入ります。


詳しい使い方については、

man find

して、手始めに、/EXAMPLE[ENTER] してみてください。