Як видалити всі файли, крім одного, у каталозі

видалити файли Linux

Іноді потрібно видалити майже всі файли з каталогу, але ви хочете зберегти один або деякі з них. Коли їх велика кількість, ходити по черзі - це нудне завдання. Це не найкращий варіант, є способи значно полегшити роботу в Linux, і ви можете одночасно усунути всі необхідні.

Наприклад, можливо, ви захочете видалити лише ті, що починаються з певного імені, або ті, що мають певне розширення тощо. Все, що можливоНасправді, в інших випадках я вже показував подібні підручники з LxA. Тут ви можете крок за кроком дотримуватися підручника і простим способом мати можливість видалити всі ті файли, які ви хочете, крім того, що ви хочете зберегти.

І найкраще це вам не потрібно буде встановлювати будь-яку програму, це можна легко зробити за допомогою таких команд, як rm і find. Тобто програми, які вже попередньо встановлені на будь-якому дистрибутиві Linux. І звичайно, метод буде заснований на пошуку шаблонів та використанні цих збігів, щоб видалити лише те, що ви хочете.

Ну а для того, щоб там усунути кілька альтернатив, Хто вони…

Видаліть файли з каталогу за допомогою rm

Ну, для того, щоб використовувати команда rm Щоб усунути те, що ви відчуваєте, вам слід знати перед деякими способами виявлення закономірностей:

  • * (список шаблонів) - відповідає нулю або більше випадків зазначених шаблонів
  • ? (список шаблонів) - відповідає нулю або одному входження зазначених шаблонів
  • + (список шаблонів) - відповідає одному або кільком випадкам зазначених шаблонів
  • @ (список шаблонів) - відповідає одному із зазначених шаблонів
  • ! (список шаблонів) - відповідає чому-небудь, крім одного з поданих шаблонів

в увімкнути extglob - - Щоб мати можливість ними користуватися, спочатку потрібно виконати таку команду:

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

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

око! Я не вказую це, але передбачається, що у вас є дозвіл на виконання цих операцій і що ви знаходитесь у цьому каталозі під час виконання команди rm. Будьте обережні з цим, тому що якщо ви запустите його за іншим шляхом, ви можете в кінцевому підсумку видалити непотрібні файли. Тобто перед виконанням цих команд переконайтеся, що ви ввели потрібний каталог за допомогою cd.

Тепер ви можете використовувати rm, щоб видалити все, що хочете. Наприклад, видалити всі файли з каталогу, крім тих, що відповідають імені «Lxa»:

rm -v !("lxa")

Ви також можете вказати два або більше імен, які ви не хочете видаляти. Наприклад, щоб уникнути видалення "lxa" та "desdelinux":

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

Ви можете видалити всі файли, мінус ті з розширенням .mp3. Наприклад:

 rm -v !(*.mp3) 

Зрештою, ви можете повернутися до вимкнути extglob - -:

 shopt -u extglob 

Видаліть файли з каталогу за допомогою find

Іншою альтернативою rm є використовуйте find, щоб видалити все, що вам подобається. Ви можете використовувати трубу та xargs з rm, або скористатися опцією -delete для пошуку. Тобто загальним синтаксисом буде:

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

Наприклад, уявіть, що ви хочете видалити всі файли в каталозі, крім файлів із розширенням .jpg, ви можете використовувати одну з цих двох команд, оскільки обидві вони отримують однаковий результат:

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

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

Натомість, якщо ти хотів додати якийсь додатковий шаблон, ти теж міг. Наприклад, припустимо, ви не хочете видаляти .pdf або .odt з каталогу:

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

Звичайно, ви могли б зробити те саме з | та xargs, як у попередньому прикладі. До речі, ми використовували -не заперечувати, але ви можете видалити це, щоб зробити його позитивним, тобто видалити відповідні шаблони і не виключати їх.

Видаліть файли з каталогу за допомогою змінної GLOBIGNORE

Нарешті, є Ще одна альтернатива щоб знайти та rm, і він використовує змінну середовища, щоб вказати на файли, які ви хочете видалити або виключити. Наприклад, уявіть, що ви хочете видалити всі файли в каталозі, що називається Завантаження, зберігаючи файли .pdf, .mp3 та .mp4. У цьому випадку ви можете зробити наступне:

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


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: AB Internet Networks 2008 SL
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.