1. tomozo6

    Posted

    tomozo6
Changes in title
+findチートシート
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,69 @@
+findコマンドでよく使う構文をメモ代わりにどんどん書いていきます。
+
+### 再帰的なgrep
+
+```
+$ find ./ -name '*' | xargs grep hogehoge
+```
+
+拡張子がphpのものだけならばfindの時点で絞ってあげます。
+
+```
+$ find ./ -name '*.php' | xargs grep hogehoge
+```
+
+よく使うのに忘れがちな構文です。
+
+### 「1年前~現在」までのファイルの合計容量(GB)
+過去のファイルを消してディスクの容量削減をする際に、削除後どのぐらいの容量になるかを試算するために使います。
+以下のパターンだと、「過去1年間分のファイルだけ残す場合、どれだけの容量まで減るか?」という試算になります。
+
+```
+$ find ./ -mtime -365 -type f -printf "%s\n" |awk '{sum += $1; printf("\r%d",sum/1024/1024/1024) }; END{print""};'
+```
+
+### 1年前以前のファイルを削除
+まずは該当ファイルを表示して確認
+
+```
+$ find ./ -mtime +366 -type f
+```
+
+さらにどれぐらいの容量か確認
+
+```
+$ find ./ -mtime +366 -type f -printf "%s\n" |awk '{sum += $1; printf("\r%d",sum/1024/1024/1024) }; END{print""};'
+```
+
+そしてrmコマンドで本当に削除
+
+```
+$ find ./ -mtime +366 -type f -exec rm {} \;
+```
+
+### 更新日が最近のファイルを検索する
+
+カレントディレクトリ内で更新日が最近の5日以内のファイルを見つける。-lsで詳細情報を付加。
+
+```
+$ find ./ -mtime -5 -ls
+```
+
+更新日が最近の5日以上前のファイルを見つける(こう書くと古い方を見てしまう)
+
+```
+$ find ./ -mtime +5
+```
+
+更新日がちょうど5日前のファイルを見つける
+
+```
+$ find ./ -mtime 5
+```
+
+### ファイル名のみ表示
+findの後にパイプで以下のように`awk`に渡すとファイル名のみ出力できます。
+
+```
+$ find ./ -type f | gawk -F/ '{print $NF}'
+```