Fájlok és könyvtárak törlése a Linux terminálon

Az rm és rmdir parancsok fájlokat és könyvtárakat törölnek Linuxon, macOS-en és más Unix-szerű operációs rendszereken. Hasonlóak a Windows és a DOS del és deltree parancsaihoz. Ezek a parancsok nagyon erősek, és jó néhány lehetőségük van.

Fontos megjegyezni, hogy az rm és rmdir segítségével törölt fájlok és könyvtárak nem kerülnek a kukába. Azonnal eltávolítják őket a számítógépről. Ha véletlenül fájlokat töröl ezekkel a parancsokkal, akkor csak biztonsági másolatból tudja visszaállítani őket.

Fájlok eltávolítása az rm segítségével

A legegyszerűbb eset egyetlen fájl törlése az aktuális könyvtárból. Írja be az rm parancsot, egy szóközt, majd a törölni kívánt fájl nevét.

rm file_1.txt

Ha a fájl nem az aktuális munkakönyvtárban található, adja meg a fájl helyének elérési útját.

rm ./path/to/the/file/file_1.txt

Egynél több fájlnevet is átadhat az rm-nek. Ezzel törli az összes megadott fájlt.

rm file_2.txt file_3.txt

Helyettesítő karakterekkel választhatja ki a törölni kívánt fájlcsoportokat. A * több karaktert jelöl, a ? egyetlen karaktert jelent. Ez a parancs törli az összes png képfájlt az aktuális munkakönyvtárban.

rm *.png

Ez a parancs törli az összes olyan fájlt, amely egyetlen karakter kiterjesztéssel rendelkezik. Ez például a Fájl.1 és a 2. fájlt törölné, a 12. fájlt nem.

rm *.?

Ha egy fájl írásvédett, a rendszer kéri a fájl törlése előtt. Válaszoljon y-val vagy n-nel, és nyomja meg az „Enter” billentyűt.

Az rm helyettesítő karakterekkel való használatának kockázatának csökkentése érdekében használja az -i (interaktív) kapcsolót. Ehhez meg kell erősítenie az egyes fájlok törlését.

rm -i *.dat

Az -f (force) opció az interaktív ellentéte. Még akkor sem kér megerősítést, ha a fájlok írásvédettek.

rm -f filename

Könyvtárak eltávolítása az rm segítségével

Egy üres könyvtár eltávolításához használja a -d (könyvtár) kapcsolót. A könyvtárnevekben ugyanúgy használhat helyettesítő karaktereket (* és ?), mint a fájlnevekben.

rm -d directory

Egynél több könyvtárnév megadása törli az összes megadott üres könyvtárat.

rm -d directory1 directory2 /path/to/directory3

A nem üres könyvtárak törléséhez használja a -r (rekurzív) kapcsolót. Az egyértelműség kedvéért ez eltávolítja a könyvtárakat, valamint a bennük lévő összes fájlt és alkönyvtárat.

rm -r directory1 directory2 directory3

Ha egy könyvtár vagy fájl írásvédett, a rendszer felszólítja a törlés megerősítésére. A nem üres könyvtárak törléséhez és ezen promptok letiltásához használja a -r (rekurzív) és -f (kényszerítő) kapcsolót együtt.

rm -rf directory

Itt gondoskodni kell. Az rm -rf paranccsal való hiba adatvesztést vagy rendszerhibát okozhat. Veszélyes, és az óvatosság a legjobb politika. Az rm -rf paranccsal törlendő könyvtárszerkezet és fájlok megértéséhez használja a fa parancsot.

Az apt-get segítségével telepítse ezt a csomagot a rendszerére, ha Ubuntut vagy más Debian-alapú disztribúciót használ. Más Linux disztribúciók esetén használja inkább a Linux disztribúció csomagkezelő eszközét.

sudo apt-get install tree

A fa parancs futtatása egy könnyen érthető diagramot készít a könyvtárszerkezetről és a futtatás alá tartozó könyvtár alatti fájlokról.

tree

A fa parancs elérési útját is megadhatja, hogy az elindítsa a fát a fájlrendszer egy másik könyvtárából.

tree path/to/directory

Az rm parancsnak vannak –one-file-system, –no-preserve-root, –preserve-root beállításai is, de ezek csak haladó felhasználók számára ajánlottak. Ha valamit rosszul csinál, akkor véletlenül törölheti az összes rendszerfájlt. Forduljon a parancshoz kézikönyv oldal további információért.

Könyvtárak eltávolítása az rmdir segítségével

Van egy másik parancs, az rmdir, amellyel könyvtárakat törölhet. Az rm és az rmdir közötti különbség az, hogy az rmdir csak üres könyvtárakat tud törölni. Soha nem törli a fájlokat.

A legegyszerűbb eset egyetlen üres könyvtár törlése. Az rm-hez hasonlóan több könyvtárnevet is átadhat az rmdir-nek, vagy egy könyvtár elérési útját.

Töröljön egyetlen könyvtárat az aktuális könyvtárból úgy, hogy átadja a nevét az rmdir-nek:

rmdir directory

Töröljön több könyvtárat úgy, hogy átadja a névlistát az rmdir-nek:

rmdir directory1 directory2 directory3

Az aktuális könyvtárban nem szereplő könyvtár törlése a teljes elérési út megadásával:

rmdir /path/to/directory

Ha nem üres mappát próbál meg törölni, az rmdir hibaüzenetet ad. A következő példában az rmdir sikeresen és csendben törli az ügyfelek könyvtárát, de nem hajlandó törölni a projektkönyvtárat, mert az tartalmaz fájlokat. A projektek könyvtára pontosan úgy marad, ahogy volt, és a benne lévő fájlok érintetlenül maradnak.

Amikor az rmdir „A könyvtár nem üres” hibát jelez, leállítja a parancssorban neki átadott könyvtárak feldolgozását. Ha négy könyvtár törlésére kérte, és az elsőben fájlok voltak, az rmdir hibaüzenetet küld, és nem tesz mást. Kényszerítheti, hogy figyelmen kívül hagyja ezeket a hibákat az –ignore-fail-on-non-empty beállítással, így a többi könyvtár is feldolgozásra kerül.

A következő példában két mappa került át az rmdir-be, ezek a work/reports és a work/quotes. Az –ignore-fail-on-non-empty opció szerepel a parancsban. A munka/jelentések mappában fájlok vannak, ezért az rmdir nem tudja törölni. Az –ignore-fail-on-non-empty opció arra kényszeríti az rmdir-t, hogy figyelmen kívül hagyja a hibát, és lépjen tovább a következő feldolgozandó mappába, ami a work/quotes. Ez egy üres mappa, és az rmdir törli.

Ez volt a használt parancs.

rmdir --ignore-fail-on-non-empty work/reports /work/quotes

Használhatja a -p (szülők) opciót egy könyvtár és a szülőkönyvtárak törlésére is. Ez a trükk működik, mert az rmdir a célkönyvtárral kezdődik, majd visszalép a szülőhöz. Ennek a könyvtárnak most üresnek kell lennie, így az rmdir törölheti, és a folyamat megismétlődik, visszalépve az rmdir számára megadott útvonalon.

A következő példában az rmdir-nek átadott parancs a következő:

rmdir -p work/invoices

A számlák és a munkakönyvtárak is törlésre kerülnek, ahogy azt kéri.

Akár Bash-t, akár más shellt használ, a Linux rugalmas és hatékony parancsokat biztosít a könyvtárak és fájlok törléséhez közvetlenül a terminál parancssorából. Vannak, akik inkább a terminál körül forognak munkafolyamatot. Másoknak nem lehet más választásuk ebben a kérdésben. Előfordulhat, hogy olyan szervereken dolgoznak, amelyekben nincs telepített grafikus felhasználói felület, vagy távoli munkameneten dolgoznak egy fej nélküli rendszeren, például egy Raspberry Pi-n. Ezek a parancsok tökéletesek az adott embercsoport számára.

De bármilyen típusú munkafolyamatot részesít is előnyben, ezek a parancsok nagyon jól használhatók a shell szkriptekben. Ha egy parancsfájlt egy cron-feladat indít el, az segíthet automatizálni a rutinszerű háztartási feladatokat, például a nem kívánt naplófájlok törlését. Ha megvizsgálja a használati esetet, emlékezzen ezeknek a parancsoknak az erejére, alaposan teszteljen mindent, és mindig készítsen egy friss biztonsági másolatot.