Nogle gange har du brug for det fjern næsten alle filer fra et bibliotek, men du vil beholde en eller nogle af dem. Når der er et stort antal af dem, er det en kedelig opgave at gå en efter en. Det er ikke den bedste mulighed, der er måder at gøre arbejdet i Linux meget lettere, og at du kan fjerne alle dem, du har brug for på én gang.
For eksempel vil du måske kun fjerne dem, der starter med et bestemt navn, eller dem, der har en bestemt udvidelse osv. Alt det der er muligtFaktisk ved andre lejligheder har jeg allerede vist lignende tutorials i LxA. Her kan du følge vejledningen trin for trin og på en enkel måde for at kunne slette alle de filer, du ønsker, undtagen hvad du vil gemme.
Og det bedste er det du behøver ikke at installere noget program, det kan gøres let med kommandoer som rm og find. Det vil sige programmer, der allerede er forudinstalleret på enhver Linux-distro. Og selvfølgelig vil metoden være baseret på at finde mønstre og bruge disse matches til kun at fjerne det, du ønsker.
For at eliminere der flere alternativer, Hvad er de…
Fjern filer fra et bibliotek med rm
For at kunne bruge rm-kommando For at eliminere, hvad du har lyst til, skal du vide, før du finder nogle måder at identificere mønstre på:
- * (mønsterliste) - matcher nul eller flere forekomster af de angivne mønstre
- ? (mønsterliste) - matcher nul eller en forekomst af de angivne mønstre
- + (mønsterliste) - matcher en eller flere forekomster af de angivne mønstre
- @ (mønsterliste) - matcher et af de angivne mønstre
- ! (mønsterliste) - matcher alt undtagen et af de givne mønstre
til aktiver extglob For at kunne bruge dem skal du først udføre følgende kommando:
<br data-mce-bogus="1"> shopt -s extglob<br data-mce-bogus="1">
Nu kan du bruge rm til at fjerne hvad du vil. For eksempel, slet alle filer fra et bibliotek undtagen dem, der matcher navnet «Lxa»:
rm -v !("lxa")
Du kan også angive to eller flere navne, som du ikke vil slette. For eksempel for at undgå at fjerne "lxa" og "desdelinux":
rm -v !("lxa"|"desdelinux")
Du kan slette alle filer, minus dem med udvidelse .mp3. For eksempel:
rm -v !(*.mp3)
I slutningen kan du gå tilbage til deaktiver extglob:
shopt -u extglob
Fjern filer fra et bibliotek med find
Et andet alternativ til RM er brug find for at fjerne det, du har lyst til. Du kan bruge et rør og xargs med rm eller bruge indstillingen -delete til at finde. Det vil sige, den generiske syntaks ville være:
find /directory/ -type f -not -name 'PATRÓN' -delete find /directory/ -type f -not -name 'PATRÓN' -print0 | xargs -0 -I {} rm [opciones] {}
Forestil dig for eksempel, at du vil have slet alle filer i et bibliotek undtagen dem med udvidelsen .jpg, du kan bruge en af disse to kommandoer, da de begge får det samme resultat:
find . -type f -not -name '*.jpg'-delete find . -type f -not -name '*.jpg' -print0 | xargs -0 -I {} rm -v {}
I stedet, hvis du ville tilføj noget ekstra mønster, det kunne du også. Antag for eksempel, at du hverken vil fjerne .pdf eller .odt fra et bibliotek:
find . -type f -not \(-name '*pdf' -or -name '*odt' \) -delete
Selvfølgelig kan du gøre det samme med | og xargs som i det foregående eksempel. Forresten har vi brugt ikke at benægte men du kan fjerne det for at gøre det positivt, dvs. fjerne de matchende mønstre og ikke udelukke dem.
Slet filer fra et bibliotek ved hjælp af GLOBIGNORE-variablen
Endelig er der Et andet alternativ for at finde og rm, og det bruger en miljøvariabel til at pege på de filer, du vil fjerne eller ekskludere. Forestil dig f.eks., At du vil slette alle filerne i en mappe, der hedder Downloads, og gemme .pdf-, .mp3- og .mp4-filerne. I så fald kan du gøre følgende:
cd Descargas GLOBIGNORE=*.pdf:*.mp4:.*mp3 rm -v * unset GLOBIGNORE