タイトル変えました〜 ubuntuを中心にlinuxのセットアップとか覚書とかをもろもろ書いていきます。あとCisco系のネットワークやjQueryとかも余裕があれば書いていきたい....

find コマンド.....非常に便利です! 使います! でもオプションが多くて忘れてしまうことも多々。
なので、以下に防備録的にまとめてみました。
ただし、find には「-exec」という抽出したファイルに対してコマンドを実行するオプションがあるのですが使ってません。 憶えてもいいのですが.....今は while に渡して処理しているのでわざわざ覚えんでもいいか....という感じです。 興味がある方はそちらも勉強してくださいませ。

書式

find コマンドの書式find [起点となるパス] [option] -a [option] -o [option]

しばらく使っていないとこの順番を忘れてしまう...
ちなみに「-a」「-o」は and/or のことです。

-name [str]

findコマンド使うときはまずここから入る人が多いと思います。 正直今はあまり使いませんが。
なぜなら、この抽出条件に使う文字列に正規表現を使えないから。 どちらかというと「?」や「*」を使うのでwindowsのワイルドカード的な使い方になります。 これで足りるときは使ってるという感じです。
※ちなみに正規表現が使える「-regex」もありますが、これは部分一致でマッチさせられないので使いずらく、こちらも使っていない。

-type f , -type d

これはよく使います。 なぜなら先程の -name を使わないので、とりあえずこれで抽出して、パイプで grep に渡すことが多いから。
  • type -f …… ファイルだけ抽出します
  • type -d …… ディレクトリだけ抽出します

-atime, -amin

これもよく使います。 -atime は何日前、-amin は何分前の違いがあります。 「-atime +1」となると 1日以上前がマッチ。 「-atime -1」となると1日以内がマッチします。
ちなみに「atime」はアクセス日時が対象。 ほかにも生成日時が対象の「ctime」、最終更新日時が対象の「mtime」があります。
※ctimeは正確にはファイルの最終ステータスが変更された日時ですが生成日時でとりあえずなんとかなる。

-daystart

これは一部の人にとっては憶えておいてもらいたいオプションです。
というのはcronでログの処理をカスタマイズして記述する時にとっても役に立つから。
findの atime などでいう「今日」は実は「実行時から24時間前の日」がデフォルトです。 このオプションをつけることによって「今日」が「実行時の日」とすることができるので、処理を考える時に非常に楽になります。

--mindepth, --maxdepth

これはあまり使いませんが、知っていると便利。 検索するディレクトリ階層を限定できます。


この他にもこのコマンドには便利なオプションがあるので興味がある方はman pageなりを見てくださいませ。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

×

この広告は60日間更新がないwikiに表示されております。

管理人/副管理人のみ編集できます