Jak znaleźć i usunąć pliki w Linux

Jak znaleźć i usunąć pliki w Linux
Ten samouczek wyjaśnia, jak połączyć polecenie Linux Znajdź z innymi w celu wyszukiwania i usuwania plików za pomocą jednego wykonania polecenia.

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.

LS

Jak 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 "-delete

Gdzie:

  • znajdować: Polecenie Find jest najwyraźniej używane do wyszukiwania plików.
  • . (Kropka): DOT po poleceniu Znajdź określa, że ​​operacja musi być wykonana w bieżącym katalogu. Nasza sprawa znajduje się w katalogu domowym, dlatego kropka jest równa /dom/użytkownik.
  • -Typ F: Ta opcja określa, jakie pliki chcemy znaleźć. Jeśli chcesz przeszukać katalogi, wymień F na D.
  • -nazwa: Jest to opcja określenia celu pliku/katalogu. Ta opcja musi zostać wpisana przed nazwą pliku/katalogu, aby ją zdefiniować.
  • „*.tekst": W tym konkretnym przypadku przeszukujemy wszystkie „.pliki txt ”, które określamy, wpisując„*.tekst".
  • -usuwać: Ta opcja instruuje polecenie Znajdź, aby usunąć znalezione pliki.

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 -Delete

Jak 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 -Delete

Załóż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*” -Delete

Wszystkie 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:

  • -Exec: Instruuje, aby wykonać polecenie tylne po pierwszym wykonaniu (znajdź).
  • rm -rf: To polecenie służy do wymuszenia usuwania plików i katalogów pasujących do podanych nazwisk.
  • „”: To jest znajdować Polecenie zastępcze, co oznacza, że ​​przyjmuje nazwy pliku lub katalogu podane do polecenia Find, aby uruchomić podane polecenie (po -Exec) na nich. W poprzednim przykładzie, rm -rf jest stosowany do symboliki zastępczej , który reprezentuje „dziennik"
  • „\;”: Tylne cięcie i półkolis zamyka się lub kończy -Exec

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 "\) -delete

Jak 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 -Delete

Xargs 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 Dir2

Teraz przenieśmy wszystkie pliki w środku Dir1 Do Dir2 używając mv Komenda.

LS ~/Dir1/* | xargs mv -t ~/dir2

Jak 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.