Jak usunąć wszystkie pliki z katalogu oprócz jednego

usunąć pliki Linuksa

Czasami potrzebujesz usunąć prawie wszystkie pliki z katalogu, ale chcesz zachować jedną lub kilka z nich. Kiedy jest ich dużo, przechodzenie jeden po drugim jest żmudnym zadaniem. To nie jest najlepsza opcja, są sposoby, aby znacznie ułatwić pracę w Linuksie i wyeliminować wszystkie potrzebne na raz.

Na przykład możesz chcieć usunąć tylko te, które zaczynają się od określonej nazwy, lub te, które mają określone rozszerzenie i tak dalej. To wszystko jest możliweW rzeczywistości przy innych okazjach pokazałem już podobne tutoriale w LxA. Tutaj możesz postępować zgodnie z samouczkiem krok po kroku iw prosty sposób, aby móc usunąć wszystkie te pliki, które chcesz, z wyjątkiem tych, które chcesz zapisać.

A najlepsze jest to nie będziesz musiał instalować żadnego programu, można to łatwo zrobić za pomocą poleceń takich jak rm i find. To znaczy programy, które są już preinstalowane w każdej dystrybucji Linuksa. I oczywiście metoda będzie polegać na znajdowaniu wzorców i używaniu tych dopasowań do usuwania tylko tego, co chcesz.

Cóż, aby się tam wyeliminować kilka alternatyw, Czym oni są…

Usuń pliki z katalogu za pomocą rm

Cóż, aby użyć rm polecenie Aby wyeliminować to, co czujesz, musisz wiedzieć, jak rozpoznać wzorce:

  • * (lista wzorów) - dopasowuje zero lub więcej wystąpień określonych wzorców
  • ? (lista wzorców) - dopasowuje zero lub jedno wystąpienie określonych wzorców
  • + (lista wzorów) - dopasowuje jedno lub więcej wystąpień określonych wzorców
  • @ (lista wzorców) - dopasowuje jeden z określonych wzorców
  • ! (lista wzorców) - dopasowuje wszystko oprócz jednego z podanych wzorców

do aktywować extglob Aby z nich skorzystać, musisz najpierw wykonać następującą komendę:

<br data-mce-bogus="1">

shopt -s extglob<br data-mce-bogus="1">

oko! Nie określam tego, ale zakłada się, że masz uprawnienia do wykonywania tych operacji i że jesteś w tym katalogu, gdy wykonujesz polecenie rm. Uważaj z tym, ponieważ jeśli uruchomisz go w innej ścieżce, możesz skończyć z usunięciem plików, których nie chcesz. Oznacza to, że przed wykonaniem tych poleceń upewnij się, że wszedłeś do żądanego katalogu za pomocą cd.

Teraz możesz użyć rm, aby usunąć wszystko, co chcesz. Na przykład, usuwa wszystkie pliki z katalogu oprócz tych, które pasują do nazwy „Lxa”:

rm -v !("lxa")

Możesz również określić co najmniej dwie nazwy, których nie chcesz usuwać. Na przykład, aby uniknąć usunięcia „lxa” i „desdelinux”:

 rm -v !("lxa"|"desdelinux") 

Możesz usunąć wszystkie pliki, minus te z rozszerzeniem .mp3. Na przykład:

 rm -v !(*.mp3) 

Na koniec możesz wrócić do wyłącz extglob:

 shopt -u extglob 

Usuń pliki z katalogu za pomocą funkcji find

Inną alternatywą dla rm jest użyj funkcji znajdź, aby usunąć wszystko, co chcesz. Możesz użyć potoku i xargs z rm lub użyć opcji -delete, aby znaleźć. Oznacza to, że składnia ogólna byłaby następująca:

find /directory/ -type f -not -name 'PATRÓN' -delete
find /directory/ -type f -not -name 'PATRÓN' -print0 | xargs -0 -I {} rm [opciones] {}

Na przykład wyobraź sobie, że chcesz usuń wszystkie pliki z katalogu oprócz tych z rozszerzeniem .jpg, możesz użyć jednego z tych dwóch poleceń, ponieważ oba dają ten sam wynik:

find . -type f -not -name '*.jpg'-delete

find . -type f -not -name '*.jpg' -print0 | xargs -0 -I {} rm -v {}

Zamiast tego, jeśli chcesz dodaj dodatkowy wzórTy też możesz. Na przykład wyobraź sobie, że nie chcesz usuwać ani pliku .pdf, ani .odt z katalogu:

find . -type f -not \(-name '*pdf' -or -name '*odt' \) -delete

Oczywiście możesz zrobić to samo z | i xargs jak w poprzednim przykładzie. Nawiasem mówiąc, użyliśmy -nie zaprzeczyć, ale możesz to usunąć, aby było pozytywne, to znaczy usunąć pasujące wzorce, a nie je wykluczać.

Usuń pliki z katalogu za pomocą zmiennej GLOBIGNORE

Wreszcie jest Inna alternatywa do znalezienia i rm oraz używa zmiennej środowiskowej do wskazywania plików, które chcesz usunąć lub wykluczyć. Na przykład wyobraź sobie, że chcesz usunąć wszystkie pliki z katalogu o nazwie Pobrane, zapisując pliki .pdf, .mp3 i .mp4. W takim przypadku możesz wykonać następujące czynności:

cd Descargas
GLOBIGNORE=*.pdf:*.mp4:.*mp3
rm -v *
unset GLOBIGNORE


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: AB Internet Networks 2008 SL
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.