Piszę poniżej polecenie, aby usunąć wszystkie pliki starsze niż 7 dni, ale to nie działa:
find /media/bkfolder/ -mtime +7 -name'*.gz' -exec rm {} \;
Jak mogę usunąć te pliki?
command-line
delete
find
rm
Malihe Pakyari
źródło
źródło
name
a'*.gz'
.Odpowiedzi:
Jak zauważył @Jos, brakuje Ci spacji między
name
i'*.gz'
; również do przyspieszenia wykorzystania poleceń-type f
opcję uruchamiając polecenie na f iles tylko.Stałym poleceniem byłoby:
Wyjaśnienie:
find
: Komenda UNIX znalezienia f ÎLES / d irectories / l farb itp/path/to/
: katalog, w którym chcesz rozpocząć wyszukiwanie.-type f
: znajdź tylko pliki.-name '*.gz'
: lista plików, które kończą się na.gz
.-mtime +7
: rozważ tylko te, których czas modyfikacji jest starszy niż 7 dni.-execdir ... \;
: dla każdego znalezionego wyniku wykonaj następującą komendę w...
.rm -- '{}'
: usuń plik; ta{}
część zastępuje wynik wyszukiwania z poprzedniej części.--
oznacza, że parametry końca polecenia unikają błędów w pytaniach dla plików rozpoczynających się od łącznika .Alternatywnie użyj:
Od człowieka znajdź :
Co jest nieco bardziej wydajne, ponieważ wynosi:
w przeciwieństwie do:
jak w
-exec
metodzie.Alternatywnym, a także szybszym poleceniem jest użycie
+
terminatora exec zamiast\;
:To polecenie będzie uruchamiane
rm
tylko raz na końcu zamiast za każdym razem, gdy plik zostanie znaleziony, a to polecenie jest prawie tak szybkie, jak użycie-delete
opcji jak we współczesnymfind
:źródło
-delete
na koniec? Po co mieszać z+
lub\;
?Ostrożnie usuwaj pliki przy pomocy find. Uruchom komendę z opcją -ls, aby sprawdzić, co usuwasz
find /media/bkfolder/ -mtime +7 -name '*.gz' -ls
. Następnie pobierz polecenie z historii i dołącz-exec rm {} \;
Ogranicz obrażenia, które może zadać polecenie znajdowania. Jeśli chcesz usunąć pliki z tylko jednego katalogu,
-maxdepth 1
uniemożliwia find przechodzenie przez podkatalogi lub przeszukiwanie całego systemu, jeśli literówka/media/bkfolder /
.Inne limity, które dodaję, to bardziej szczegółowe argumenty nazwy, takie jak
-name 'wncw*.gz'
dodawanie nowszego niż czas-mtime -31
i cytowanie przeszukiwanych katalogów. Są to szczególnie ważne, jeśli automatyzujesz porządki.find "/media/bkfolder/" -maxdepth 1 -type f -mtime +7 -mtime -31 -name 'wncw*.gz' -ls -exec rm {} \;
źródło