Jak w temacie: Chciałbym usunąć pliki z katalogu, który został zmodyfikowany w określonym zakresie dat. Jak mogę to zrobić ?
źródło
Jak w temacie: Chciałbym usunąć pliki z katalogu, który został zmodyfikowany w określonym zakresie dat. Jak mogę to zrobić ?
Polecenie GNU find
jest właściwą drogą. Na przykład, aby usunąć wszystkie pliki w bieżącym katalogu między 1 a 5 sierpnia, możesz użyć następującego polecenia
find . -maxdepth 1 -type f -newermt 2011-08-01 ! -newermt 2011-08-06 -delete
Lepiej wykonać polecenie bez -delete
akcji, po pierwsze, aby wyświetlić listę zainteresowanych plików (dobrym zamiennikiem może być -ls
utworzenie listy podobnej do ls).
Usunięcie -maxdepth 1
specyfikacji spowoduje również przejście do wszystkich podkatalogów.
Możesz także określić godziny, na przykład
find . -maxdepth 1 -type f -newermt '2011-08-01 10:01:59' \
! -newermt '2011-08-06 23:01:00' -delete
Ostrzegamy, aby nie usuwać pojedynczych cudzysłowów, które chronią spacje między datą a godziną.
Postać !
jest zaprzeczeniem, należy ją przeczytać: nowsza niż ta data, ale nie nowsza niż ta inna data.
!
nie jest. W tym przykładzie: nie nowszy niż 2011-08-06.-type f
.-type f
, zapomniałem o tym. To-delete
chyba rozszerzenia GNU.