Как да изтрия всички файлове с изключение на един в директория

изтриване на 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) 

В края можете да се върнете към деактивиране на:

 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. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.