特定の日付の間に変更されたファイルを削除する方法は?


12

トピックと同様に、特定の日付範囲で変更されたディレクトリ内のファイルを削除したいと思います。これどうやってするの ?

回答:


18

コマンドGNU findは、行く方法です。たとえば、8月1日から5日までの間に現在のディレクトリにあるすべてのファイルを削除するには、次のコマンドを使用できます。

find . -maxdepth 1 -type f -newermt 2011-08-01 ! -newermt 2011-08-06 -delete

-deleteまず、アクションなしでコマンドを実行して、関心のあるファイルのリストを表示することをお勧めします(-lslsのようなリストを作成することもできます)。

-maxdepth 1仕様を削除すると、すべてのサブディレクトリも走査されます。

たとえば、時間を指定することもできます

find . -maxdepth 1 -type f -newermt '2011-08-01 10:01:59' \
                         ! -newermt '2011-08-06 23:01:00' -delete

日付と時刻の間のスペースを保護する単一引用符を削除しないように注意してください。

文字!は否定であり、読む必要があります。この日付よりも新しいが、この他の日付よりも新しいものではありません


返信いただきありがとうございます。何かを使用して時間帯を選択することもできますか?そして、「!」とは のために使用される ?
パトリク

!ありません。この例では、2011-08-06より新しいものではありません。
CON-F-使用

@lordmonkey:答えに私の編集を見る
enzotib

3
+1。-delete述語を知りませんでした。必要ないかもしれませんが、を追加し-type fます。
ミチャウシュラージェル

@MichałŠrajer:のための良いヒント-type f、私はそれを忘れています。これ-deleteはGNU拡張機能だと思います。
-enzotib
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.