Néha szükséged van rá távolítson el szinte minden fájlt egy könyvtárból, de meg akarja tartani egyiküket vagy néhányukat. Ha nagy számban vannak, akkor az egyesével haladás unalmas feladat. Ez nem a legjobb megoldás, vannak módok, amelyek megkönnyítik a munkát a Linuxban, és hogy egyszerre megszüntetheti az összes szükségeset.
Például érdemes eltávolítani csak azokat, amelyek egy bizonyos névvel kezdődnek, vagy azokat, amelyeknek van egy kiterjesztése stb. Minden lehetségesValójában máskor már bemutattam hasonló oktatóanyagokat az LxA-ban. Itt lépésről lépésre és egyszerű módon követheti az oktatóanyagot, hogy törölje az összes kívánt fájlt, kivéve a menteni kívánt fájlokat.
És a legjobb az nem kell semmilyen programot telepíteni, könnyen elvégezhető olyan parancsokkal, mint az rm és a find. Vagyis olyan programok, amelyek már előre telepítve vannak bármely Linux disztribúcióra. Természetesen a módszer azon fog alapulni, hogy megtalálja a mintákat, és felhasználja ezeket az egyezéseket, hogy csak a kívántakat távolítsa el.
Nos, annak megszüntetése érdekében több alternatíva, Kik ők…
Távolítson el fájlokat egy könyvtárból az rm segítségével
Nos, a rm parancs Ahhoz, hogy kiküszöbölje a kedvét, ismernie kell a minták azonosításának néhány módját, mielőtt:
- * (minták listája) - megfelel a megadott minták nulla vagy több előfordulásának
- ? (minták listája) - megfelel a megadott minták nulla vagy egy előfordulásának
- + (mintalista) - egyezik a megadott minták egy vagy több előfordulásával
- @ (mintalista) - egyezik a megadott minták egyikével
- ! (mintalista) - bármihez illeszkedik, kivéve az adott minták egyikét
hogy aktiválja az extglobot Használatukhoz először a következő parancsot kell végrehajtani:
<br data-mce-bogus="1"> shopt -s extglob<br data-mce-bogus="1">
Most az rm segítségével eltávolíthat mindent, amit csak akar. Például, távolítson el minden fájlt egy könyvtárból, kivéve azokat, amelyek megfelelnek a névnek «Lxa»:
rm -v !("lxa")
Megadhatja azt is két vagy több név, amelyet nem szeretne törölni. Például az „lxa” és a „desdelinux” eltávolításának elkerülése érdekében:
rm -v !("lxa"|"desdelinux")
Az összes fájlt törölheti, mínusz a hosszabbítással rendelkezők .mp3. Például:
rm -v !(*.mp3)
A végén visszatérhet ide tiltsa le az extglobot:
shopt -u extglob
Fájlokat távolítson el egy könyvtárból a kereséssel
Az rm másik alternatívája az a find segítségével távolíthatja el, amit csak akar. Használhat egy pipe-t és az xargs-t rm-mel, vagy a -delete opcióval kereshet. Vagyis az általános szintaxis a következő lenne:
find /directory/ -type f -not -name 'PATRÓN' -delete find /directory/ -type f -not -name 'PATRÓN' -print0 | xargs -0 -I {} rm [opciones] {}
Képzelje el például, hogy szeretné töröljön minden fájlt egy könyvtárból, kivéve a kiterjesztéssel rendelkező fájlokat .jpg, használhatja a két parancs egyikét, mivel mindkettő ugyanazt az eredményt kapja:
find . -type f -not -name '*.jpg'-delete find . -type f -not -name '*.jpg' -print0 | xargs -0 -I {} rm -v {}
Ehelyett, ha akarja adj hozzá néhány extra mintát, te is tehetnéd. Tegyük fel például, hogy nem akarja eltávolítani sem a .pdf, sem az .odt könyvtárat:
find . -type f -not \(-name '*pdf' -or -name '*odt' \) -delete
Természetesen ugyanezt tehetné a | és xargs, mint az előző példában. Egyébként használtuk -nem tagadni, de ezt eltávolíthatja, hogy pozitív legyen, vagyis eltávolítsa az egyező mintákat, és ne zárja ki őket.
Fájlokat törölhet a könyvtárból a GLOBIGNORE változó segítségével
Végül van Egy másik alternatíva megtalálni és rm, és egy környezeti változó segítségével rámutat az eltávolítani vagy kizárni kívánt fájlokra. Képzelje el például, hogy törölni szeretné az összes fájlt a Letöltések nevű könyvtárból, menti a .pdf, .mp3 és .mp4 fájlokat. Ebben az esetben a következőket teheti:
cd Descargas GLOBIGNORE=*.pdf:*.mp4:.*mp3 rm -v * unset GLOBIGNORE