Ero sivun ”Rm” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
p (→‎Katso myös: - PhotoRec lisätty)
pEi muokkausyhteenvetoa
Rivi 20: Rivi 20:
  $ sudo rm -rf /
  $ sudo rm -rf /


{{Vinkki|Hyvä tapa opetella turvallisuuden lisäämiseksi, ettet vahingossa vain poista väärää sijaintia, on sijoittaa <code>-rf</code> kytkin vasta sijainnin jälkeen: rm <hakemisto> -rf }}
{{Vinkki|Hyvä tapa opetella turvallisuuden lisäämiseksi, ettet vahingossa vain poista väärää sijaintia, on sijoittaa <code>-rf</code> valitsin vasta sijainnin jälkeen: rm <hakemisto> -rf }}


  $ sudo rm / -rf
  $ sudo rm / -rf

Versio 6. joulukuuta 2020 kello 17.50

Komentorivikomento rm poistaa valitun tiedoston. Poistaaksesi tiedoston sinulla täytyy olla kirjoitusoikeudet hakemistoon jossa tiedosto sijaitsee – itse tiedostoon ei tarvita oikeuksia (muuta kuin jos hakemistossa on t-bitti aktiivisena ja tiedosto on toisen omistuksessa).

Normaalisti rm ei kysy varmistusta kuin kahdessa tapauksessa: jos tiedostoon ei ole kirjoitusoikeuksia tai jos valitsin -i on käytössä (explisiitisti tai aliaksen kautta). Valitsimella -f varmistusta ei kysytä näissäkään tapauksissa.

Itse asiassa komento ei ensisijaisesti poista tiedostoa kiintolevyltä, vaan sen nimen hakemistosta. Tiedosto saattaa esiintyä useammassa hakemistossa tai eri nimillä ja vasta viimeisen kovan linkin poistamisen myötä tiedosto häviää (ls -l näyttää linkkien määrän). Jos tiedosto on jonkin ohjelman käytössä, ohjelma voi jatkaa sen käyttöä riippumatta siitä onko tiedosto poistettu hakemistoista.

Käyttö

Poista tiedosto

$ rm poistettava_tiedosto

Poista hakemisto ja sisältö rekursiivisesti (varmista, ettei komennossa ole ylimääräisiä välilyöntejä tai hakemistonimessä erikoismerkkejä)

$ rm -r poistettava_hakemisto

Poista kaikki tiedostot laitteella

Tämä {{{1}}} on haitallinen laitteen tärkeimmille toiminnoille, eikä sinun pitäisi kokeilla sitä omalla tietokoneellasi. Se näytetään tässä vain esimerkkinä.
$ sudo rm -rf /
Vinkki: Hyvä tapa opetella turvallisuuden lisäämiseksi, ettet vahingossa vain poista väärää sijaintia, on sijoittaa -rf valitsin vasta sijainnin jälkeen: rm <hakemisto> -rf
$ sudo rm / -rf

Jos rm kyselee varmistusta, on se alias. Oikean rm-komennon saa käyttöön joko antamalla polun /bin/rm tai käyttämällä muotoa \rm.

Ongelmatiedostot

Jos poistettavassa tiedostonimessä on erikoismerkkejä (Unixeissa kaikki merkit paitsi \0 ja kauttaviiva ovat sallittuja), tiedoston voi poistaa esimerkiksi näin:

  • Lainausmerkit toimivat hyvin, jos tiedostonimessä on esimerkiksi välilyöntejä. Niitä kannattaa käyttää aina, kun tiedostonimiä käsittelee skripteissä.
  • "Hipsut" estävät useimpien erikoismerkkien toiminnan.
  • Kenoviiva muuttaa sitä seuraavan erikoismerkin tavalliseksi merkiksi.
  • Polun määrittäminen siirtää ongelmallisen alkumerkin ongelmattomaan kohtaan.
  • Tähdellä voi määritellä nimiä, joita ei voi helposti kirjoittaa, ja valitsimella -i niistä voi poimia poistettavat. Muoto \rm tai /bin/rm varmistaa ettei aliaksen kautta käytetä valitsinta -f.
$ ls
a b  a"b  a*b  -ab  a?b
$ rm "a b"
$ rm 'a"b'
$ rm a\*b
$ rm ./-ab
$ \rm -i a*b

Poista hakemiston kaikki piilotiedostot (poistamatta mitään ylähakemistosta):

$ rm ./.[^.]*
$ ls
...  ..abc  a  b  c
$ rm ./..?*

Rikkinäisellä medialla ja joissakin toisissa yhteyksissä voi esiintyä tiedostoja, joita pääkäyttäjäkään ei voi poistaa. Varmista, että osio ei ole kirjoitussuojattu (mount -o remount,rw osio) ja ettei tiedotoa ole suojattu erikoismääreillä (lsattr tiedosto). Erilaiset "haamutiedostot" on monessa tapauksessa mahdollista saada häviämään tarkistamalla ja korjaamalla tiedostojärjestelmä fsck:n avulla.

Valitsimia

  • -f - ei kysellä koskaan mitään
  • -i - kysytään ennen jokaisen tiedoston poistamista
  • -I - kysyy vain kerran, jos poistettavia tiedostoja on yli kolme tai jos käytetään rekursiivista poistoa (-r-valitsin)
  • --interactive= - säätelee varmistuksen kyselyä, never-arvolla ei kysellä lainkaan, once on sama kuin valitsin -I ja always sama kuin valitsin -i
  • --one-file-system - ei poista kuin yhteen tiedostojärjestelmään kuuluvia tiedostoja
  • --preserve-root - ei sovella rekursiivista poistoa juurihakemistoon (oletus)
  • --no-preserve-root - mahdollistaa juurihakemiston rekursiivisen poiston (käytä jos haluat tuhota järjestelmäsi)
  • -r, -R - rekursiivinen poisto (poistaa myös hakemistot)
  • -v - tulostaa jokaisen tiedoston nimen ennen sen poistoa (verbose)

Lisätietoja saa komennolla:

info rm

Katso myös

  • PhotoRec (tiedostojen palautus)
  • ls (tiedostolistaus)
  • ln (linkitys)
  • mv (tiedostojen siirtäminen)
  • rmdir (hakemiston poistaminen)
  • mkdir (hakemiston luominen)