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

 

 
記事を共有する

zaturendo

中小企業社内SE。

0件のコメント

コメントを残す

メールアドレスが公開されることはありません。