rm (Unix)

rm (lyhenne Englanti poistaa , poista " ) on Unix -World tavallista komento tiedosto - ja hakemisto merkintöjä Delete / Poista. Komento on määritelty POSIX- standardissa. Se on erillinen ohjelma , ei Unix- komentokäsky.

Varovaisuutta on suositeltava käytettäessä rm: tä , koska oletusarvoisesti ei ole kehotetta vahvistaa komentoa; Järjestelmään liittyvät tiedostot voidaan poistaa vahingossa.

Unixin ja johdettujen tiedostojärjestelmien tiedostot koostuvat toisaalta todellisesta datatiedostosta, dataobjektista (tiedoston sisällöstä), johon on liitetty ainutlaatuinen tietosolmu, ns. Inodi , ja toisaalta ainakin yhdestä viitteestä ( englanninkielinen linkki ) kyseiseen inodiin nimellä " Koko tiedostonimi (eli polku mukaan luettuna) on esitetty. Inodilla voi siten olla useita tiedostonimiä - kyseisillä tiedostoobjektiviitteillä ( englanninkielinen kova linkki ).

Itse asiassa komento rm ./pfad/dateinameei poista itse dataobjektia (tiedoston sisältöä), vaan poistaa vain viitteen (kova linkki) inodiinsa tiedostojärjestelmän hakemistopuusta.

Jos viimeinen (kova) linkki inodiin poistetaan (eikä tietoja enää pääse prosesseihin), tiedosto katsotaan poistetuksi. Itse asiassa vain vastaavat datalohkot vapautetaan korvattaviksi. Niin kauan kuin näitä datalohkoja ei ole korvattu, poistettu tiedosto voidaan sen vuoksi palauttaa.

Rm- ohjelma voidaan kutsua myös ongelmitta, jos prosessi käyttää edelleen tietoja. Kyseinen henkilö voi jatkaa tietojen lukemista ilman häiriöitä, kunnes se lopetetaan; vasta sitten lohkot vapautetaan.

rm ja poista linkitys

Vaikka komento rmon POSIX- standardoitu, yhden UNIX-määrityksen (SUSv2) unlinktoinen versio on määritelty ja sillä on pienempi valikoima toimintoja.

Erityinen toiminnallisuus, ts. Käytetäänkö linkityksen poistamista järjestelmäkutsusta , riippuu käytetystä toteutuksesta (näin oli alkuperäisessä Unix-versiossa ). Yleensä rm- ohjelma käsittelee molemmat komennot ja . unlinkrmunlink

Suojattu poisto

Käyttöjärjestelmä vapauttaa datalohkot vasta rm: n jälkeen , mutta tietoja voidaan silti fyysisesti tallentaa jonkin aikaa. Arkaluontoisten tietojen (esim. Salasanat tai luottokortin numerot) ei kuitenkaan pitäisi enää olla luettavissa. Turvallisen poistamisen varmistamiseksi sinun on avattava tiedosto ja korvattava kaikki lohkot. Jotkut tiedostojärjestelmät tarjoavat myös mahdollisuuden korvata välittömästi vapaat lohkot. Tämä vie kuitenkin aikaa ja sitä käytetään siksi vain poikkeustapauksissa.

Laaja mielipide siitä, että tiedot voidaan silti palauttaa suurella vaivalla sen jälkeen, kun ne on kerran korvattu, esimerkiksi elektronimikroskooppimittausten avulla, on väärä; sen korvaaminen kerran on täysin riittävä; On tärkeämpää poistaa kaikki kopiot, myös varmuuskopioinnin aikana automaattisesti tehdyt kopiot.

Katso myös: murskaa tai pyyhi

Tiedostojen palautus

Unix ei yleensä tue tiedostojen palauttamista. Ilmaiset datalohkot voivat olla heti muiden prosessien uusien tietojen varassa.

On kuitenkin tiedostojärjestelmiä, jotka tukevat palautusta. Vaikka vastaavaa kehitystä on tapahtunut usean vuoden ajan, "undelete" ei ole vielä kiinni.

syntaksi

rm [Optionen] Dateiname

Esimerkki:

rm test.txt

Tämä esimerkki poistaa "test.txt" -tiedoston hakemistosta, jossa olet tällä hetkellä.

Vaihtoehdot:

POSIXrm määrittelee kolme vaihtoehtoa :

-f
Force: Ei kyselyä, jos kirjoitusvaltuutusta ei ole, eikä virheilmoituksia, jos tiedostojen nimiä ei ole, joten ei muutosta poistumistilaan.
-i
Interaktiivinen: pyytää käyttäjää vahvistamaan kunkin yksittäisen tiedoston poistamisen.
-r
Rekursiivinen poisto: poistaa hakemiston itse ja kaiken sen sisällön, mukaan lukien kaikki alihakemistot ja niiden sisällön.

Jotkin sovelluksen toteutustavatrm tarjoavat myös useita lisävaihtoehtoja.

rm -rf /

rm -rf /-Komennolla on jo käytössä vertauskuvallisesti jota ilman kulttuuria , koska sen katastrofaalisia seurauksia , samanlainen / dev / null . Kutsuvan rmparametrien rja fettä juuri hakemiston syitä, kuten voi jo nähdä syntaksi kuvauksesta , rekursiivinen poistetaan kaikki tiedostot suoritusajankohdan laite (tarkemmin: kaikki integroitu tietovälineillä) ilman kyselyä. Jos suoritat tämän komennon järjestelmänvalvojana (pääkäyttäjänä), se johtaa periaatteessa koko järjestelmän peruuttamattomaan poistamiseen; tavallisena käyttäjänä tämä poistaa yleensä vain kaikki tiedostot, jotka kuuluvat suorittavalle käyttäjälle (katso Unix-tiedostojen oikeuksista lisätietoja oikeuksien käsittelystä ja tiedostojen omistajuudesta ).

Sun Microsystems esitteli rm -rf /suojauksen Solaris 10: llä (ensimmäinen versio vuodelta 2005). Kun Unix-komento kutsutaan , ohjelma keskeyttää virheilmoituksen, jonka mukaan poistaminen ei /ole sallittua. Pian sen jälkeen sama ominaisuus otettiin käyttöön FreeBSD: ssä .

Kuten POSIX-määrityksessä vaaditaan, myös GNU- versio keskeyttää rmvirheilmoituksen, kunhan vaihtoehtoa --no-preserve-rootei ole määritetty. Tämä GNU-kohtainen vaihtoehto ja sen vastine --preserve-roototettiin käyttöön vuonna 2003 julkaisemalla GNU Core Utilities -ohjelman versio 5.1.0 ja versiolla 6.2 (julkaistu vuonna 2006) jälkimmäisestä vaihtoehdosta tuli vakio.

Yksittäiset todisteet

  1. Nikolai Bezroukov: Rm: n luovia käyttötarkoituksia . Haettu 14. helmikuuta 2012.
  2. Suojattu poisto: ylikirjoittaminen kerran riittää . heise verkossa , 16. tammikuuta 2009
  3. a b c d rm . Julkaisussa: IEEE Std 1003.1-2008 . Avaa ryhmä . Haettu 14. helmikuuta 2012.
  4. rm . Julkaisussa: FreeBSD Man Pages . FreeBSD -säätiö. Haettu 14. helmikuuta 2012.
  5. rm-kutsu . Julkaisussa: GNU Coreutils . Free Software Foundation . Haettu 14. helmikuuta 2012.
  6. sekaantua asioihin Wizards ( Memento of alkuperäisen maaliskuusta 16, 2011. Internet Archive ) Info: arkisto yhteys oli lisätään automaattisesti, ei ole vielä tarkastettu. Tarkista alkuperäinen ja arkistolinkki ohjeiden mukaisesti ja poista sitten tämä ilmoitus. (Englanti) @ 1@ 2Malline: Webachiv / IABot / blogs.sun.com
  7. Open Group Base -määrittelynumero 7 - rm (englanti)
  8. Git sitoutuu tukemaan uusia vaihtoehtoja: --preserve-root ja --no-säilitada-root (englanti)
  9. Git sitoutu ... - säilytä-root on nyt oletusarvo (englanti)