Linuxコマンドの覚書(自分用)です。
一般的な方法
$ find . -type f -name filename* | xargs rm -f
.
は現在のカレントディレクトリを指します。ここを起点としてサブディレクトリを再帰的に検索し、-name
の後に指定されたファイルを削除します。-name
で指定できるファイル名は*
、?
のようなワイルドカードを使用できます。
-name
オプションを-iname
とすることで、大文字・小文字の区別をせずに検索します。
但しこの場合は、検索結果のパス中に半角スペースが入っていると正しく動作しません。
半角スペースに対応
$ find . -type f -name filename* -print0 | xargs -0 rm -f
この場合、検索したパスに半角スペースが含まれていても正しく削除されます。
正規表現を使って検索
$ find . -type f -regextype posix-egrep -regex .*filname.* -print0 | xargs -0 rm -f
正規表現を使ってファイルを検索します。
この場合の正規表現は、ファイル名ではなくパス全体が検索の対象になりますので、それを考慮して正規表現を書きます。
ファイルのタイムスタンプを対象に検索
コマンド発行時を起点に、(3+1)*24
時間前から 3*24
時間前の間に変更のあったファイル。。
$ find . -type f -mtime 3 | xargs rm -f
コマンド発行時を起点に、(3+1)*24
時間前より前の時間 (greater than) に変更のあったファイル。
$ find . -type f -mtime +3 | xargs rm -f
コマンド発行時を起点に、3*24
時間前より後の時間 (less than) に変更のあったファイル。
$ find . -type f -mtime -3 | xargs rm -f
0件のコメント