Jak usunąć pliki w systemie Linux starszym niż 1 rok? [duplikować]

9

Możliwa duplikat:
Jak usunąć pliki z Linuksem dłuższe niż określona data

Jak usunąć wszystkie pliki w bieżącym katalogu i jego podkatalogach starszych niż rok?

Społeczność
źródło
1
Zrobić man find. Bum.
1
Uwaga dla osób zamykających: to drugie pytanie jest w rzeczywistości myląco różne, a jego odpowiedzi nie są całkowicie łatwe do transponowania.
Gilles „SO- przestań być zły”

Odpowiedzi:

15
find /the/dir/to/start/in -type f -mtime +365 -ls -exec rm -f -- {} \;
bot403
źródło
2
find /path/to/files -type f -mtime +365 -deletebyłoby łatwiejsze.
Chris S
-delete nie ma w moim znalezisku aix, więc nie jestem przyzwyczajony do korzystania z niego. Cieszę się, że został zaimplementowany w innych plikach binarnych wyszukiwania.
bot403
find … -exec rm -f {} +będzie trochę szybszy (i jest przenośny z wyjątkiem starożytnych systemów).
Gilles „SO- przestań być zły”
1
Dobrze jest również użyć, --gdy pierwsza nazwa pliku zaczyna się od -(chociaż możesz zagwarantować, że tak się nie stanie, jeśli przekazywany katalog findnie zaczyna się od a -).
Gilles „SO- przestań być zły”
Jest to niezwykle niebezpieczne, ponieważ nie widzisz, co zamierzasz usunąć, i dlaczego na świecie wymuszasz usuwanie z -f? Niektóre pliki są chronione z jakiegoś powodu. O wiele bezpieczniej jest przechowywać wyniki find w pliku, a następnie sprawdzić je i uruchomić rm na zawartości pliku.
Petr
2

Jeśli usuwasz wiele plików, jest to zwykle znacznie szybsze niż „-exec” lub przesyłanie strumieniowe do „xargs”:

find . -type f -mtime +365 | perl -lne unlink
Pontus
źródło