Po przeczytaniu tego samouczka będziesz wiedział, jak uprościć zadanie usunięcia plików w Linux za pomocą różnych technik. Ten samouczek jest zoptymalizowany zarówno dla nowych, jak i doświadczonych użytkowników, przechodząc prosto do praktycznego punktu i wyjaśniając każdy aspekt. Zachęcam do ćwiczenia wszystkich podanych przykładów w celu włączenia tej wiedzy. Tylko uważaj na usuniętą treść.
Ten artykuł zawiera zrzuty ekranu na każdym kroku, ułatwiając wszystkim użytkownikom Linuksa.
Znalezienie i usuwanie plików w Linux
W tej sekcji wyjaśniono różne techniki znalezienia plików i usuwania ich w locie za pomocą pojedynczego polecenia lub kombinacji poleceń.
Na początek, zobaczmy, co jest w katalogu domowym za pomocą LS (Lista) polecenie.
LSJak widać na poprzedniej figurze, istnieje kilka plików i katalogów. Wśród nich możemy zobaczyć 1.tekst, 2.tekst I 3.tekst.
Możemy użyć polecenia Znajdź, a następnie typ pliku, nazwa pliku i -usuwać opcja.
Ale w poniższym przykładzie nie usuniemy określonego pliku, ale wszystkie pliki z „.rozszerzenie TXT ”.
znajdować . -typ f -name "*.txt "-deleteGdzie:
Jak widać na poprzednim zrzucie ekranu, po wykonaniu LS Poleć ponownie, pliki TXT nie pojawiają się. Zostały usunięte przez wcześniej wykonane polecenie.
Oczywiście możesz znaleźć i usunąć określone pliki, jak pokazano na poniższym rysunku, gdzie plik3 znajduje się i usuwa.
znajdować . -typ f -name plik3 -DeleteJak wyjaśniono na poprzedniej liście polecenia i opcji, jeśli chcesz usunąć katalog, a nie plik, musisz wymienić F z D po -typ Opcja, jak pokazano na poniższym obrazku:
znajdować . -Typ D -name Dir1 -DeleteZałóżmy, że chcesz usunąć wiele plików, których pierwsza część ich nazwisk jest taka sama. Na poniższym zrzucie ekranu możesz zobaczyć plik 1, plik2 I plik3.
Jeśli chcesz usunąć wszystkie pliki „Filex”, wystarczy wymienić część nazw plików bez przypadkowego zbieżności (*), jak pokazano w poniższym przykładzie:
znajdować . -Typ f -name „Plik*” -DeleteWszystkie poprzednie przykłady wyjaśniły, jak usunąć pliki za pomocą -usuwać opcja. W tej sekcji wyjaśniono, jak uzyskać ten sam wynik za pomocą -Exec Komenda.
Pierwsza część następującego polecenia została już wyjaśniona wcześniej. Uwzględnione polecenie -Exec służy do zastosowania działania na podstawie wyniku poprzedniego polecenia.
znajdować . -nazwa „coś.log "-exec rm -rf \;Gdzie:
Teraz zobaczmy nowy scenariusz za pomocą polecenia LS. Jak widać, są inne „.pliki txt ”.
W takim przypadku zastąpimy -usuwać opcja z -Exec rm ponownie, aby usunąć wszystkie „.pliki txt ”, tak jak w drugim przykładzie tego dokumentu, ale używając innej techniki.
Możesz zobaczyć polecenie w trzecim wierszu poniższego rysunku. Poprzednie polecenie LS pokazuje istniejące pliki przed wykonaniem znajdować, a drugi LS pokazuje wynik ze wszystkimi „.usunięto pliki txt ”.
znajdować . -typ f -name "*.txt "-exec rm -f \;Teraz utwórzmy nowy scenariusz, który możesz zobaczyć w poniższym przykładzie. Ten scenariusz obejmuje kilka „.txt ”i„.C Pliki ”.
Załóżmy, że chcesz usunąć oba .tekst I .C pliki jednocześnie za pomocą opcji -Delete zamiast opcji -Exec. Jak widać na poniższym obrazie, pliki nazw są pomiędzy \ ( I \). Przed drugą nazwą pliku mamy -o opcja, a następnie -nazwa a druga nazwa pliku (lub warunek w tym przypadku, ponieważ usuwamy wszystkie „.pliki txt)). Możesz dodać -o -name wiele razy, jak potrzebujesz, ale pamiętaj, że pierwszy -nazwa nie jest poprzedzony -o opcja.
znajdować . \( -nazwa "*.c "-o -name"*.txt "\) -deleteJak widać, oba .tekst I .C Pliki zostały pomyślnie usunięte.
Teraz połączmy polecenie Znajdź z poleceniem Xargs (wyjaśniono na końcu tego samouczka).
W poniższym przykładzie usuwamy wszystkie „.pliki txt ”za pomocą XARGS, gdzie -I jest symbolem zastępczym, a między % wykonujemy polecenie.
Jak widać, po drugim wykonaniu LS, wszyscy .C I .tekst Pliki zostały usunięte.
znajdować *.txt -type f | xargs -i % rm „ %”Składnia do usuwania wielu plików jest łatwiejsza Xargs. W następującym poleceniu oba .C I .tekst Pliki są usuwane.
znajdować *.tekst *.C -Type f | xargs -i % rm „ %”Na koniec załóżmy, że chcesz usunąć pliki według daty, a nie według nazwy lub rozszerzenia. W takim przypadku polecenie Find może zidentyfikować MTime (daty plików tworzenia lub modyfikacji) plików i katalogów.
Na poniższym obrazie możesz zobaczyć Dir2 katalog, który zawiera 4 pliki: plik 1, plik2, plik3 I plik4. Wszystkie pliki w obrębie Dir2 zostały stworzone w ciągu ostatnich 24 godzin.
Zidentyfikowanie plików jest możliwe za pomocą -MTime Opcja, a następnie przedział czasu plików. W tym przypadku -1 Opcja wskazuje 1 dzień, 24 godziny. -1 oznacza pliki utworzone lub zmodyfikowane w ostatnim dniu, a +1 oznacza pliki utworzone lub zmodyfikowane więcej niż dzień temu.
W poniższym przykładzie używamy polecenia Znajdź z opcją -mtime, aby usunąć utworzone lub zmodyfikowane pliki w ostatnim dniu.
Znajdź Dir2 -Type F -MTime -1 -DeleteXargs vs -exec
Xargs Polecenie jest prawie zawsze zaimplementowane z rurami (ale niekoniecznie muszą) używać pierwszego polecenia jako argumentu. W przeciwieństwie do rury, pozwala na użycie pierwszego polecenia jako argumentu, a nie tylko jako poprzednie wyjście lub polecenie poprzednika.
Poniższy przykład w tej sekcji zawiera listę plików i katalogów za pomocą LS (Lista) polecenie i przenosi wymienione pliki do innego katalogu za pomocą mv I Xargs polecenia. Nie jest to właściwa metoda przenoszenia plików, ale jako przykład jest przydatna, aby pokazać, jak Xargs polecenie działa.
Najpierw spójrz moim Linuxhintdir informator. Jak widać, mamy 3 pliki: plik 1, plik2 I plik3.
LS Dir1 Dir2Teraz przenieśmy wszystkie pliki w środku Dir1 Do Dir2 używając mv Komenda.
LS ~/Dir1/* | xargs mv -t ~/dir2Jak widać, wynik LS ~/DIR1/* był przekazany Xargs po mv Komenda.
-Exec Polecenie jest podobne do Xargs. Może wykonywać polecenia na podstawie wyjścia pierwszego polecenia. W przeciwieństwie do Xarg, -Exec Wykonuje polecenie za każdym razem, gdy plik pasuje do warunku. Jeśli użyjemy polecenia -exec do usunięcia plików, usunie je plik według pliku. Podczas gdy Xargs wykonuje polecenie od razu dla wszystkich dopasowanych plików. To sprawia Xargs trochę szybciej niż -exec. Dlatego jeśli masz do czynienia z wieloma plikami, XARGS byłby wygodny -Exec.
Wniosek
Linux ma wiele metod osiągnięcia tego samego zadania. Znalezienie i usunięcie plików za pomocą jednego polecenia jest wiedzą, że każdy użytkownik Linux powinien mieć niezależnie od jego doświadczenia. Ten samouczek koncentruje się na znalezieniu i usuwaniu plików, ale XARGS i -EXEC mogą być używane z wieloma poleceniami Linux. Ważne jest, aby wspomnieć, że niektóre funkcje są dostępne tylko w znajdować wersja. Większość wyjaśnionych wskazówek jest przydatna dla prawie każdego rozkładu Linuksa.
Dziękujemy za przeczytanie tego samouczka wyjaśniającego, jak znaleźć i usunąć pliki w Linux. Śledź nas, aby uzyskać bardziej profesjonalne wskazówki.