findの使い方

はてなブックマーク

findでファイル検索入門
http://builder.japan.zdnet.com/news/story/0,3800079086,20363968,00.htm

というのがブックマークされていて、そういえば昔findの使い方というのをはてなDiaryに書いて、いまだに来て下さる方がいるよなぁと思い出しました。http://d.hatena.ne.jp/niming538/20070816

以下再掲

実例: find / -name 'hanoi*' 2>/dev/null

findのあとのスラッシュ「/」は、ルートの意味でこれでシステム全体を探せます。Zaurusのハードディスク6GとSCカード2Gを一瞬にして検索。カレントフォルダー以下にしたい場合は、ピリオド「.」にする。

「-name」はファイル名の検索をしますよ、という意味で、

「hanoi*」はhanoiで始まり、そのあとに任意の文字列がつくファイルという意味。

シングルクウォート「'」で囲っているのは、シェルが「hanoi*」のワイルドカードを解釈して展開してしまわないように囲っています。

「2>/dev/null」は、ファイルでないフォルダーについて、エラーが山のようにでるので、それを出ないようにするためのおまじない。

unixのコマンドはmanやinfoでわかるといいますが、findはちょっと癖があって私はいつも自分のこの例をノートから探し出して使っています。

以上再掲


追記

WindowsPowerShellで似たようなことをやる方法


ls / -r | where { $_.Name -match "hanoi*" }


ワイルドカードの意味がちょっと違うみたいなので、研究中です。


追記

新しいファイルを再帰的に探して表示する

alias findrecent='find . -type f -printf "%T@ %p\n" 2>/dev/null | grep -v 'git'| grep -v 'config' |grep -v 'cache' | grep -v 'local' | grep -v 'mozc' | grep -v 'bash_history' |grep -v 'config' |grep -v 'nv' |grep -v 'elm-stuff' |grep -v 'sys'| sort -n | tail -20'