Jak usuwać pliki rekurencyjnie w Linux

Jak usuwać pliki rekurencyjnie w Linux
Ten samouczek Linux wyjaśnia, jak usuwać pliki rekurencyjnie za pomocą różnych dostępnych technik.

Po przeczytaniu tego artykułu będziesz mógł znaleźć i usunąć pojedyncze lub wiele plików z wiersza poleceń. Ten samouczek jest zoptymalizowany zarówno dla nowych, jak i doświadczonych użytkowników Linuksa.

Pierwsza sekcja tego samouczka wyjaśnia, jak usuwać pliki rekurencyjnie (katalogi o wszystkich treściach i treściach podrzędnych). Below I also added instructions to remove recursively certain types of files depending on their size, extension, creation or modification time, and permissions.

Wszystkie praktyczne przykłady w tym dokumencie zawierają zrzuty ekranu, aby ułatwić każdemu użytkownikowi Linux i zastosować je do ich potrzeb.

Usuwanie wszystkich plików rekurencyjnie w Linux

Pierwsza sekcja pokazuje, jak korzystać z Rm (Usuń) Polecenie do usunięcia katalogu z całą jego treścią, w tym wszystkie subkredyty z ich plikami i dodatkowymi podwodnymi.

Rm polecenie używane z -R Flaga usunie treść wszystkich katalogów niezależnie od ich typu.

Ale najpierw zobaczmy katalogi w moim domu za pomocą LS Komenda.

ls ~/


Jak widać, mam 5 katalogów: Desktop, Dir2, dokumenty, pobieranie, I RemovereCurdir.

Zobaczmy zawartość nazwanego katalogu RemovereCurdir za pomocą polecenia drzewo jak pokazano na zrzucie ekranu poniżej.

RemovereCurdir drzewa



Według drzewo wyjść RemovereCurdir Directory zawiera dwa katalogi zawierające podwodniki i plik w środku Revunecurdir: Katalog Dir1, z Otherdir I OtherDir2 podkatalogowe i katalog Dir2 zawiera plik o nazwie plik3.

Powiedzmy, że chcemy usunąć Revunecurdir i wszystkie jego treści, w tym wszystkie pliki i podkatalogowe. Właściwe polecenie jest Rm polecenie, a następnie -R flaga, jak pokazano w składni poniżej.

Rm -r


Zatem jeśli chcę usunąć RemovereCurdir Z całą zawartością uruchomię:

RM -R Removerecurdir/



Kolejny LS Wyjście pokazuje katalog, a cała jego treść została pomyślnie usunięta.

Jak usuwać pliki rekurencyjnie według rozmiaru

Ta sekcja pokazuje, jak rekurencyjnie usuwać pliki mniejsze niż 10 megabajtów za pomocą polecenia znajdować.

Składnia jest następująca:

znajdować -typ f -rozmiar - -exec rm +


Notatka że w poniższym przykładzie używam sudo Aby uzyskać uprawnienia do usuwania chronionych plików.

sudo find /var /log -Type f -Size -10m -exec rm +



Składnia do usuwania plików większych niż określony rozmiar jest bardzo podobny. Symbol minus (-) musi zostać zastąpiony przez symbol plus (+). Dokładna składnia pokazano poniżej.

znajdować -typ f -rozmiar + -exec rm +


W poniższym przykładzie użyję poprzedniej składni do usuwania plików większych niż 1 GB.

Znajdź /var /log -Type f -Size +1G -exec rm +


Jak usunąć pliki rekurencyjnie według rozszerzenia (typ pliku)

Bieżący rozdział wyjaśnia, jak usunąć pliki rekurencyjnie według rozszerzenia lub typu pliku.

W moim domu mam katalog o nazwie Testhint. Zobaczmy jego zawartość za pomocą drzewo Komenda.

Tree Testhint/



Jak widać, testhint katalogu nadrzędnego zawiera plik (plik 1.TXT) i dwa podkatalogowe: testhint2 zawierające File3.TXT i subdiarectory testhint3 zawierające plik3 i coś.tekst.

Załóżmy, że chcesz rekurencyjnie usunąć tylko wszystkie pliki TXT. Składnia jest następująca:

znajdować -typ f -name '*.„-print -delete


W ten sposób, aby usunąć wszystkie pliki TXT rekurencyjnie w katalogu nadrzędnym Testhint, Uruchamiam polecenie pokazane na poniższym rysunku.

Znajdź ~/testhint -Type f -name '*.txt '-print -delete



Jak widać, wszystkie pliki TXT zostały usunięte i tylko plik3 Bez rozszerzenia pozostaje.

Tree Testhint


Możesz także usunąć pliki za pomocą za pomocą znajdować razem z Exec Polecenia, jak wyjaśnię poniżej.

Zobaczmy nowy scenariusz z tą samą strukturą katalogu, ale różne pliki.


Powyższy obraz pokazuje 4 pliki dziennika i 3 pliki bez rozszerzenia.

Składnia do usuwania plików według rozszerzeń za pomocą -Exec jest następujący:

znajdować -typ f -name '*.'-exec rm -f \;


W ten sposób, aby usunąć .pliki dziennika z poprzedniego zrzutów ekranu, uruchomiłem poniższe polecenie.

Znajdź ~/testhint -Type f -name '*.log '-exec rm -f \;



Obraz powyżej pokazuje wszystko .dziennik Pliki zostały usunięte, a inne pliki pozostały.

Xargs polecenie oferuje to samo rozwiązanie. Różnica pomiędzy Xargs I Exec Czy Exec uruchamia funkcję RM za każdym razem, gdy plik pasuje do warunku. Polecenie Xargs wykonuje polecenie RM raz dla wszystkich znalezionych plików pasujących do warunku.

Składnia do usunięcia wszystkich plików za pomocą Find i Xargs jest następująca:

znajdować -nazwa "*.„-print0 | Xargs -0 Rm


Nowy scenariusz przedstawiony na zrzucie ekranu poniżej pokazuje pięć .C Pliki w różnych podkatalakach i pięciu plikach bez .Rozszerzenie C.


Aby usunąć wszystkie .C pliki używające Xargs Uruchamiam polecenie, jak pokazano poniżej.

znajdować . -nazwa "*.c "-print0 | xargs -0 rm



Ponownie widać, że wybrane pliki rozszerzenia zostały pomyślnie usunięte.

Usuwanie wszystkich plików rekurencyjnie w oparciu o uprawnienia

Sprawdźmy nową treść Testhint informator.

Istnieją cztery pliki z pełnymi uprawnieniami (File2, File3.c, plik6.C i File7).

Załóżmy teraz, że chcesz znaleźć i usunąć wszystkie pliki z pełnymi uprawnieniami dla wszystkich.

Składnia jest następująca:

znajdować -trwała ondulacja -print0 | Xargs -0 Rm


W ten sposób, aby usunąć wszystkie pliki z pełnym dostępem do wszystkich użytkowników, wykonuję poniższe polecenie.

Znajdź ~/testhint -perm 777 -print0 | Xargs -0 Rm


Jak usuwać pliki rekurencyjnie w oparciu o modyfikację lub czas tworzenia

Ostatnia sekcja tego samouczka wyjaśnia, jak usunąć pliki rekurencyjne według czasu tworzenia lub modyfikacji.

Składnia jest następująca:

Znajdź ~/testhint -perm 777 -print0 | Xargs -0 Rm


Jeśli chcesz usunąć pliki utworzone lub zmodyfikowane w ostatnim dniu (ostatnie 24 godziny), uruchom następujące polecenie, gdzie 1 to liczba dni, a symbol minus (-) określa pliki utworzone lub zmodyfikowane przed zdefiniowaną liczbą dni.

znajdować -Typ F -MTime -1 -Delete


Aby usunąć pliki utworzone lub zmodyfikowane przed dniem, przed 24 godziny, wystarczy wymienić symbol minus dla symbolu plus.

znajdować -Typ F -MTime +1 -Delete

Wniosek

Ponieważ Linux jest bardzo wszechstronny i elastyczny system operacyjny, użytkownicy mają różne techniki, aby uzyskać ten sam wynik. Wszystkie wyjaśnione powyżej alternatywy są ważne dla prawie każdego rozkładu Linuksa. Niektóre polecenia są nawet przydatne w niektórych systemach UNIX. Jak widać, wdrożenie ich jest łatwe, a każdy użytkownik Linux może to zrobić niezależnie od poziomu wiedzy. Aby usunąć pliki rekursywnie zgodnie z innymi warunkami, sprawdź stronę główną każdego polecenia opisanego w tym artykule.