Ponekad vam treba uklonite gotovo sve datoteke iz direktorija, ali želite zadržati jednog ili neke od njih. Kad ih je velik, jedan po jedan dosadan je zadatak. To nije najbolja opcija, postoje načini za olakšavanje rada u Linuxu i odjednom možete eliminirati sve one koji su vam potrebni.
Na primjer, možda ćete htjeti ukloniti samo one koji počinju s određenim imenom ili one koji imaju određeno proširenje itd. Sve što je mogućeU stvari, u drugim prilikama sam već pokazao slične vodiče u LxA. Ovdje možete pratiti upute korak po korak i na jednostavan način moći izbrisati sve one datoteke koje želite, osim onoga što želite spremiti.
I najbolja stvar je to nećete morati instalirati nijedan program, to se lako može učiniti naredbama poput rm i find. Odnosno, programi koji su već unaprijed instalirani na bilo kojem Linux distribucijskom sistemu. I naravno, metoda će se temeljiti na pronalaženju obrazaca i korištenju tih podudaranja za uklanjanje samo onoga što želite.
Pa, kako bi se tamo eliminisalo nekoliko alternativa, Šta su oni…
Uklonite datoteke iz direktorija pomoću rm-a
Pa, da bi koristili rm naredba Da biste eliminirali ono što osjećate, prije nekoliko načina morate prepoznati obrasce:
- * (lista obrazaca) - odgovara nula ili više pojavljivanja navedenih obrazaca
- ? (lista obrazaca) - odgovara nuli ili jednoj pojavi navedenih uzoraka
- + (lista uzoraka) - odgovara jednoj ili više pojava navedenih obrazaca
- @ (lista uzoraka) - odgovara jednom od navedenih obrazaca
- ! (lista uzoraka) - odgovara bilo čemu osim jednom od zadatih obrazaca
para aktivirajte extglob Da biste ih koristili, prvo morate izvršiti sljedeću naredbu:
<br data-mce-bogus="1"> shopt -s extglob<br data-mce-bogus="1">
Sada pomoću rm možete ukloniti sve što želite. Na primjer, izbrišite sve datoteke iz direktorija, osim onih koje odgovaraju imenu «Lxa»:
rm -v !("lxa")
Takođe možete odrediti dva ili više imena koja ne želite izbrisati. Na primjer, da izbjegnete uklanjanje "lxa" i "desdelinux":
rm -v !("lxa"|"desdelinux")
Možete izbrisati sve datoteke, minus oni sa produžetkom .mp3. Na primjer:
rm -v !(*.mp3)
Na kraju se možete vratiti na onemogućiti extglob:
shopt -u extglob
Uklonite datoteke iz direktorija pomoću pronađi
Druga alternativa rm-u je koristite find kako biste uklonili sve što vam se sviđa. Možete koristiti cijev i xargs sa rm-om ili koristiti opciju -delete za pronalaženje. Odnosno, generička sintaksa bi bila:
find /directory/ -type f -not -name 'PATRÓN' -delete find /directory/ -type f -not -name 'PATRÓN' -print0 | xargs -0 -I {} rm [opciones] {}
Na primjer, zamislite da želite izbrišite sve datoteke iz direktorija, osim onih s ekstenzijom .jpg, mogli biste koristiti jednu od ove dvije naredbe, jer obje imaju isti rezultat:
find . -type f -not -name '*.jpg'-delete find . -type f -not -name '*.jpg' -print0 | xargs -0 -I {} rm -v {}
Umjesto toga, ako ste htjeli dodajte neki dodatni uzorak, mogao bi i ti. Na primjer, zamislite da ne želite ukloniti .pdf ili .odt iz direktorija:
find . -type f -not \(-name '*pdf' -or -name '*odt' \) -delete
Naravno, to biste mogli učiniti i sa | i xargs kao u prethodnom primjeru. Inače, koristili smo -ne poricati, ali to možete ukloniti da biste učinili pozitivnim, to jest uklonili obrasce podudaranja i ne isključili ih.
Izbrišite datoteke iz direktorija pomoću GLOBIGNORE varijable
Konačno, postoji Druga alternativa za pronalaženje i rm, a koristi varijablu okruženja kako bi ukazao na datoteke koje želite ukloniti ili izuzeti. Na primjer, zamislite da želite izbrisati sve datoteke u direktoriju zvanom Preuzimanja, spremajući datoteke .pdf, .mp3 i .mp4. U tom slučaju možete učiniti sljedeće:
cd Descargas GLOBIGNORE=*.pdf:*.mp4:.*mp3 rm -v * unset GLOBIGNORE