Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
36
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

findチートシート

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 {対象グループ名}
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
36
Help us understand the problem. What are the problem?