Ndonjëherë keni nevojë hiqni pothuajse të gjitha skedarët nga një direktori, por ju doni të mbani një ose disa prej tyre. Kur ka një numër të madh të tyre, të shkosh një nga një është një detyrë e lodhshme. Nuk është opsioni më i mirë, ka mënyra për ta bërë punën në Linux shumë më të lehtë dhe që ju të mund të eliminoni të gjitha ato që ju duhen menjëherë.
Për shembull, ju mund të dëshironi të hiqni vetëm ato që fillojnë me një emër të caktuar, ose ato që kanë një shtrirje specifike, etj. E gjithë kjo është e mundurNë fakt, në raste të tjera unë kam treguar tashmë udhëzime të ngjashme në LxA. Këtu mund të ndiqni udhëzuesin hap pas hapi dhe në një mënyrë të thjeshtë për të qenë në gjendje të fshini të gjitha ato skedarë që dëshironi, përveç atyre që dëshironi të ruani.
Dhe gjëja më e mirë është se nuk do të keni nevojë të instaloni ndonjë program, mund të bëhet lehtësisht me komanda si rm dhe find. Kjo është, programet që janë instaluar tashmë paraprakisht në çdo distro Linux. Dhe sigurisht, metoda do të bazohet në gjetjen e modeleve dhe përdorimin e atyre ndeshjeve për të hequr vetëm atë që dëshironi.
Epo, në mënyrë që të eliminohen atje disa alternativa, Cilat janë ato
Hiqni skedarët nga një direktori me rm
Epo, në mënyrë që të përdorni komanda rm Për të eleminuar atë që ndiheni, duhet të dini para disa mënyrave për të identifikuar modelet:
- * (lista e modeleve) - përputhet me zero ose më shumë dukuri të modeleve të specifikuara
- ? (lista e modeleve) - përputhet me zero ose një dukuri të modeleve të specifikuara
- + (lista e modeleve) - përputhet me një ose më shumë dukuri të modeleve të specifikuara
- @ (lista e modeleve) - përputhet me një nga modelet e specifikuara
- ! (lista e modeleve) - përputhet me ndonjë gjë përveç një prej modeleve të dhëna
në aktivizoni extglob Për t'i përdorur ato, së pari duhet të ekzekutoni komandën e mëposhtme:
<br data-mce-bogus="1"> shopt -s extglob<br data-mce-bogus="1">
Tani mund të përdorni rm për të hequr gjithçka që dëshironi. Për shembull, fshini të gjithë skedarët nga një direktori përveç atyre që përputhen me emrin «Lxa»:
rm -v !("lxa")
Ju gjithashtu mund të specifikoni dy ose më shumë emra që nuk doni të fshini. Për shembull, për të shmangur heqjen e "lxa" dhe "desdelinux":
rm -v !("lxa"|"desdelinux")
Ju mund të fshini të gjitha skedarët, minus ato me zgjatim .mp3. Për shembull:
rm -v !(*.mp3)
Në fund, mund të ktheheni te çaktivizo extglob:
shopt -u extglob
Hiqni skedarët nga një direktori me find
Një tjetër alternativë ndaj rm është përdorni gjetjen për të hequr atë që ju pëlqen. Ju mund të përdorni një tub dhe xargs me rm, ose përdorni opsionin -delete për të gjetur. Kjo është, sintaksa gjenerike do të ishte:
find /directory/ -type f -not -name 'PATRÓN' -delete find /directory/ -type f -not -name 'PATRÓN' -print0 | xargs -0 -I {} rm [opciones] {}
Për shembull, imagjinoni se dëshironi fshini të gjithë skedarët në një direktori përveç atyre me shtrirje .jpg, mund të përdorni një nga këto dy komanda, pasi që të dy marrin të njëjtin rezultat:
find . -type f -not -name '*.jpg'-delete find . -type f -not -name '*.jpg' -print0 | xargs -0 -I {} rm -v {}
Në vend të kësaj, nëse dëshironit shtoni një model shtesë, edhe ju mundeni. Për shembull, imagjinoni se nuk doni të hiqni .pdf ose .odt nga një direktori:
find . -type f -not \(-name '*pdf' -or -name '*odt' \) -delete
Sigurisht, ju mund të bëni të njëjtën gjë me | dhe xargs si në shembullin e mëparshëm. Nga rruga, ne kemi përdorur - jo për të mohuar, por ju mund ta hiqni atë për ta bërë atë pozitiv, domethënë për të hequr modelet e përputhjes dhe për të mos i përjashtuar ato.
Fshini skedarët nga një direktori duke përdorur ndryshoren GLOBIGNORE
Më në fund, nuk është Një tjetër alternativë për të gjetur dhe rm, dhe po përdor një ndryshore të mjedisit për të treguar skedarët që dëshiron të heqësh ose përjashtosh. Për shembull, imagjinoni se dëshironi të fshini të gjithë skedarët në një direktori të quajtur Shkarkime, duke ruajtur skedarët .pdf, .mp3 dhe .mp4. Në atë rast, ju mund të bëni sa më poshtë:
cd Descargas GLOBIGNORE=*.pdf:*.mp4:.*mp3 rm -v * unset GLOBIGNORE