Príkaz Linux rm vymaže súbory a adresáre. Ak chcete tento nástroj bezpečne používať, musíte si byť istí, čo sa stane, keď stlačíte „Enter“. Tu je to, čo potrebujete vedieť.

Čo je príkaz rm v systéme Linux?
Linuxový príkaz rm slúži hlavne na mazanie súborov. Je to jedna z vecí, s ktorou sa väčšina ľudí stretne krátko po tom, ako začnú používať Linux. Len preto, že ste v Linuxe nováčikom, je pravdepodobné, že budete robiť chyby. Súbory vytvoríte alebo skopírujete omylom, s nesprávnym názvom alebo na nesprávne miesto. To všetko je súčasťou krivky učenia pre príkazový riadok. Vyčistenia takýchto chýb zahŕňajú rm.
Príkaz rm dokáže vymazať súbory, skupiny súborov, adresáre alebo celé adresárové stromy. To je dôvod, prečo by sa mal používať opatrne. Použitie rm nie je ťažké, ale trest za zlyhanie je vysoký.
Keď sa súbor odstráni pomocou rm, zmizne. Nepresúva sa do koša. Okamžite sa vymaže. To neznamená, že by ste sa mali vyhýbať používaniu rm. Aby ste ho však mohli bezpečne používať, musíte si byť vedomí toho, čo dokáže, a uistiť sa, že ho používate správne.
Niektoré nástroje sú rizikovejšie ako iné a menej odpúšťajú chyby. To je dôvod, prečo neexistoval film s názvom The Texas Wrench Massacre. rm nie je kľúč, je to určite motorová píla.
Ľudia používajú motorové píly celý deň každý deň a pokiaľ ich používajú zodpovedne a vedome, sú v poriadku. S rm je to rovnaké. Keď vytiahnete rm z tašky s nástrojmi, malo by sa spomaliť a skontrolovať a potom znova skontrolovať príkazový riadok.
Príkaz rm je spustiteľný súbor, nie je súčasťou shellu. Takže aj keď tu používame Bash, je to štandardný Linux rm, nie špeciálny Bash rm.
Ako odstrániť súbory pomocou rm
Najjednoduchší spôsob použitia rm je zadať názov súboru, ktorý chcete odstrániť.
konfigurácia rm. gc

V tichosti sa vrátite do príkazového riadku. rm zastáva klasický linuxový odklonený postoj, že ak sa na nič nesťažuje, môžete predpokladať, že urobil to, čo ste požadovali. Poskytnutie názvu súboru ako je toto spôsobí, že rm bude hľadať súbor v aktuálnom pracovnom adresári.
Na príkazovom riadku môžete zadať viacero názvov súborov. Môžete tiež zadať cestu k adresáru, ak súbor, ktorý chcete odstrániť, nie je v aktuálnom adresári.
rm memlog.sh /home/dave/dev-archive/config.gc

Opäť sa nič nehlási, ak sa rm podarilo odstrániť vybrané súbory.
Použite zástupné znaky s rm
Zástupné znaky umožňujú určiť skupiny súborov bez toho, aby ste museli vypisovať jednotlivé súbory na príkazovom riadku.
Hviezdička „*“ predstavuje ľubovoľný reťazec znakov vrátane žiadneho. otáznik "?" predstavuje ľubovoľný jednotlivý znak.
Aby ste si overili, či sa vaše zástupné znaky budú zhodovať s tým, čo od nich očakávate, a nič viac, môžete ich použiť s ls pred ich použitím s rm.
Ak chcete odstrániť všetky súbory PNG v aktuálnom adresári, použite „*.png“. To znamená, že každá sekvencia znakov, za ktorou nasleduje „.png“, bude zhodná. Keď sú súbory odstránené, môžeme použiť ls na kontrolu, či sú preč.
ls*.png
rm*.png
ls*.png

Na našom testovacom počítači máme v aktuálnom adresári dva súbory s názvami začínajúcimi na „config“.
Obe môžeme vynechať pomocou zástupného znaku hviezdičky. Zhoduje sa s oboma súbormi, pretože rm hľadá názvy súborov začínajúce na "config", za ktorým nasleduje ľubovoľná sekvencia znakov. V jednom súbore je táto sekvencia znakov ".sl3", prípona súboru. Druhý názov súboru nemá po „config“ žiadne znaky, ale pretože hviezdička sa nezhoduje so žiadnymi alebo žiadnymi znakmi, zhoduje sa aj s týmto názvom súboru.
lsconfig*
rmconfig*
lsconfig*

Otáznik môžete použiť vo dvojici. Týmto sa odstránia súbory, ktoré majú presne dvojpísmenové prípony súborov.
ls*.??
rm*.??
ls*.??
Použite rm interaktívne
Bezpečným spôsobom použitia rm je prinútiť ho požiadať o potvrdenie pred odstránením každého súboru. Umožňuje vám to možnosť -i (interaktívna). Keď pridáte túto možnosť do príkazového riadka, rm vás vyzve pred každým odstránením, čo vám dáva možnosť preskočiť akcie, ktoré ste nezamýšľali.
V tomto príkaze použijeme voľbu -i (interaktívna). Pokusy o vymazanie všetkých súborov s príponou jedného znaku.
rm -i *.?

Každý zodpovedajúci súbor sa zobrazí postupne. Ak odpoviete „Y“ alebo „Y“, súbor sa vymaže. Ak odpoviete „n“, súbor sa zachová. V skutočnosti, ak odpoviete čímkoľvek iným ako "y" alebo "y", súbor sa zachová. Stačí stlačiť Enter a súbor sa zachová.
Môžete rýchlo prejsť zoznamom súborov, odstrániť alebo preskočiť súbory a vybrať si, ktoré súbory chcete odstrániť. Ako uvidíme, s ostatnými možnosťami rm môžete použiť možnosť -i (interaktívna).
pomocou možnosti rm force
Ak sa pokúsite odstrániť súbor len na čítanie, pred odstránením súboru vás rm vyzve na potvrdenie. Je to dobrá bezpečnostná sieť, ale môže to byť únavné, ak máte veľa súborov na odstránenie.
rm geonames. sl3

Voľba -f (force) nariaďuje rm, aby nikdy nevyžadoval výzvu. Poviete mu: „Áno, vymažte všetky súbory, o ktoré ma zvyčajne žiadate“. Zabraňuje tiež tomu, aby sa rm sťažoval, že neexistujú žiadne súbory.
rm -f geonames.sl3

Voľba -f (force) sa často používa, keď odstraňujete vnorenú množinu súborov a adresárov.
Vymažte adresáre pomocou rm
Príkaz rm môže voliteľne odstrániť aj adresáre spolu so súbormi, ktoré obsahujú. Je to podobné ako príkaz rmdir, ale rmdir nemôže vymazať adresáre obsahujúce súbory. Vymaže iba prázdne adresáre. Príkaz rm môže jednoducho odstrániť adresáre obsahujúce súbory a iné adresáre.
Odstránenie adresára je ako odstránenie súboru. V príkazovom riadku uvádzame názov adresára. Musíme zahrnúť voľbu -d (adresár). Rovnako ako pri odstraňovaní súborov môžeme poskytnúť názvy niekoľkých adresárov. Môžeme poskytnúť cestu k adresáru, ktorý v aktuálnom pracovnom adresári neexistuje.
rm -d staré-projekty

Ak adresár obsahuje súbory, toto zlyhá.
Ak chcete odstrániť adresár a jeho obsah, použite príznak -r (rekurzívny). Týmto sa odstráni adresár, jeho súbory a všetky vnorené adresáre, ktoré obsahuje.
archív rm -d
archív rm -r

Druhý príkaz bol úspešný.
Ak chcete prepnúť rm do režimu plnej píly, môžeme kombinovať voľby -r (rekurzívne) a -f (sila). Toto povie rm, aby rekurzívne vymazal všetky súbory a priečinky v strome adresárov, aj keď sú len na čítanie, a bez toho, aby nás na to vyzval.
Na našom testovacom počítači máme adresár s názvom „migrovaný kód“. Obsahuje súbory a ďalší adresár s názvom „6502“. Adresár „6502“ obsahuje aj súbory a ďalší adresár s názvom „ASM“. V tomto adresári sú tiež súbory. Niektoré súbory sú len na čítanie.
Zahrnieme aj príkaz -v (verbose), aby nám rm povedal, čo máme robiť.
rm -rfv migroval-kód

Vo výstupe vidíme, že súbory boli odstránené a keď sú prázdne, odstránia sa aj adresáre.

Vyhnite sa chybám pri používaní rm
Medzery a iné zvláštne znaky v názvoch súborov môžu spôsobiť problémy. Názvy súborov začínajúce napríklad pomlčkou „-“ sa môžu zamieňať s možnosťami príkazového riadka. Ak máme súbor s názvom „-contributors.txt“, rm sa pokúsi spracovať názov ako reťazec možností príkazového riadku.
Keďže rm nemá možnosť s názvom „-c“, analýza príkazového riadku zlyhá a súbor sa neodstráni. Ak chcete súbor odstrániť, musíte pred ním zadať „./“, aby ste k nemu poskytli cestu.
rm – prispievatelia. txt
rm./-contributors.txt

Problémom sú aj medzery v názvoch súborov. Buď citujte celý názov súboru, alebo použite tabulátor na vloženie názvu súboru do príkazového riadku pre seba, pričom medzery vynechajte tak, ako to robíte vy. Ak nepoužijete žiadnu z týchto možností, rm bude s každou časťou názvu súboru zaobchádzať ako s jedným súborom.
Tu máme dva súbory, jeden s názvom „Záloha“ a druhý s názvom „Odstrániť zálohu“. Problém s týmito názvami súborov môžeme ilustrovať pomocou ls. Ak sa pokúsime použiť ls v súbore Backup to Delete a neunikneme alebo nepresunieme názov súboru, príkaz zlyhá.
ls -hl záloha na odstránenie

ls sa sťažuje, že nemôže nájsť súbory s názvom "to" alebo "delete", ale nájde súbor s názvom "backup". Toto urobí aj rm. Bude sa sťažovať, že chýbajú dva súbory, a potom vymaže súbor s názvom „Záloha“, ktorý sme nechceli.
rm zálohu na odstránenie

rm si myslí, že to funguje s tromi súbormi, 'backup', 'to' a 'delete'. Sťažuje sa, že nemôže nájsť To a Delete, ale nájde Zálohovanie a potichu ho vymaže.
Uvedenie názvu súboru umožňuje rm vymazať správny súbor.
rm 'záloha na odstránenie'

Medzery môžete opustiť aj spätnou lomkou „\“ takto:
rm záloha\na\vymazať

Ak na zadanie názvov súborov použijete kartu Dokončovanie karty, v prípade potreby budú automaticky zakódované.
Čo sú osobné ochranné prostriedky?
Na rozdiel od skutočných reťazových píl neexistujú žiadne osobné ochranné prostriedky, ktoré by ste mohli použiť s vaším rm.
Čo môžete urobiť, je skontrolovať syntax pomocou ls predtým, ako to vyskúšate pomocou rm, a použiť interaktívny režim, aby ste sa mohli rozhodnúť, čo sa odstráni.
Okrem toho je to prax, kým sa nebudete cítiť pohodlne a sebaisto. Najbezpečnejším spôsobom, ako to urobiť, je skopírovať súbor obetných súborov do adresára a precvičiť si ich.



