Ale w rzeczywistości findma do tego skrót: -deleteopcja:
find -type f -name '*.sql' -mtime +15 -delete
Należy pamiętać o następujących ostrzeżeniach w man find:
Warnings: Don't forget that the find command line is evaluated
as an expression, so putting -delete first will make find try to
delete everything below the starting points you specified. When
testing a find command line that you later intend to use with
-delete, you should explicitly specify -depth in order to avoid
later surprises. Because -delete implies -depth, you cannot
usefully use -prune and -delete together.
PS Zauważ, że bezpośrednie przesyłanie potokiem do rmnie jest opcją, ponieważ rmnie oczekuje nazw plików na standardowym wejściu. To, co obecnie robisz, to przepychanie ich do tyłu.
dzięki. Nie jestem pewien, czy dobrze podążyłem za postem, ale kiedy emulowałem ich rozwiązanie i wstawiłem -delete na końcu polecenia, usunęło wszystkie pliki sql niezależnie od czasu modyfikacji ... ale nie miało ostrzeżenia, więc myślę, że to postęp ...
jerrygarciuh
1
@jerrygarciuh Ouch, mam nadzieję, że nic cennego nie zginęło ... manmówi: When testing a find command line that you later intend to use with -delete, you should explicitly specify -depth in order to avoid later surprises.Nie jestem pewien, jakie to ma znaczenie, biorąc pod uwagę inne opcje, z których korzystałeś, ale czy próbowałeś tego?
Lev Levitsky,
Nie, nie zrobiłem, ale nic nie zostało stracone. Te pliki są rsyncowane z innego serwera, na którym są również przechowywane.
man
mówi:When testing a find command line that you later intend to use with -delete, you should explicitly specify -depth in order to avoid later surprises.
Nie jestem pewien, jakie to ma znaczenie, biorąc pod uwagę inne opcje, z których korzystałeś, ale czy próbowałeś tego?Wybierze pliki
/usr/www/bar/htdocs
starsze niż 15 dni i usunie je.źródło
Inną prostszą metodą jest użycie
locate
polecenia. Następnie prześlij wynik doxargs
.Na przykład,
źródło
Zakładając, że nie jesteś w katalogu zawierającym pliki kopii zapasowej * .sql:
Powyższa opcja -v jest przydatna, ponieważ informuje o tym, które pliki są usuwane podczas ich usuwania.
Dla pewności lubię wymieniać pliki, które zostaną najpierw usunięte. Na przykład:
źródło