LoginSignup
33
34

More than 5 years have passed since last update.

findチートシート

Last updated at Posted at 2018-10-24

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 ./ -type f -printf "%f\n"

UID,GID を一括置換

$ find / -uid ${OldUID} -print0 | xargs -0 chown {対象ユーザ名}
$ find / -gid ${OldGID} -print0 | xargs -0 chgrp {対象グループ名}
33
34
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33
34