web-dev-qa-db-ja.com

x日より古いファイルまたはフォルダーを見つけて削除する

7日以上前のファイルとフォルダを削除したいので試しました

[17:07:14 [email protected]:~]# find /tmp/ -mindepth 1 -maxdepth 1 -ctime +7 -exec ls -l {} \;

したがって、find /tmp/ -mindepth 1 -maxdepth 1 -ctime +7 -exec ls -l {} \; dirは表示されませんが、find /tmp/ -mindepth 1 -maxdepth 2 -ctime +7 -exec ls -l {} \;サブディレクトリ内のいくつかのファイルを表示します。

1つの特定のディレクトリで7日より古いファイル/フォルダを削除する正しい方法は何ですか?

11
roy

このコードを利用できます

find /tmp/* -mtime +7 -exec rm {} \;

説明

最初の引数はファイルへのパスです。これは、上記の例のように、パス、ディレクトリ、またはワイルドカードにすることができます。フルパスを使用することをお勧めします。execrmを使用せずにコマンドを実行して、正しい結果が得られるようにします。

2番目の引数-mtimeは、ファイルの保存日数を指定するために使用されます。 +7を入力すると、7日より古いファイルが検索されます。

3番目の引数-execを使用すると、rmなどのコマンドを渡すことができます。 {} \;最後にコマンドを終了する必要があります。

ソース: http://www.howtogeek.com/howto/ubuntu/delete-files-older-than-x-days-on-linux/

フォルダーを削除するには、フォルダー内を空にした後、コードの一部でrmdirrminstadを追加できます。追加できるディレクトリのみを表示する場合も同様です。

type -d 

以下のようなコードに:

find /tmp/*/* -mtime +7 -type d -exec rmdir {} \;
24
Tolga Varol

簡単にできる

find /tmp/* -mtime +7 -exec rm -rf {} \; 

ファイルとディレクトリを削除します

7
user6406452

私の簡単な方法:

find /tmp/* -daystart -mtime +7 -delete

daystartオプションは、24時間前ではなく、今日の初めからの時間を測定します

ref: official_doc

2
alfiogang