Onko rm -rf /: n ja rm -rf *: n välillä eroa *?

Onko rm -rf *.* vioittunut tiedostojärjestelmäsi, kun taas rm -rf / ei tämä?

Kommentit

Vastaa

Siellä ”Sillä ei ole mitään erityistä, rm -rf *.* on komento, jolla on tiedostonimen jokerimerkki, se poistaa rekursiivisesti kaikki nykyisen hakemiston tiedostot, joissa on piste nimissään.

rm -rf / aiheuttaisi virheen yritettäessä suorittaa rm juurihakemistossa. Tämä on valtuuttanut POSIX :

Jos […] operandi-reso Lves juurihakemistoon, rm kirjoittaa diagnostiikkaviestin vakiovirheeseen eikä tee mitään muuta tällaisten operandien kanssa.

Riippuen komentotulkissa ja sen asetuksissa *.* saattaa myös olla sama kuin .. päähakemistossa, mutta myös /, yrittää poistaa myös virhe.

Kumpikaan näistä ei vahingoita tiedostojärjestelmää, rm vain (yrittää) poistaa tiedostoja tavallisilla tiedostojärjestelmäpuheluilla. Vaikutus järjestelmään yleensä tai käyttäjän tiedostoihin voi tietysti olla merkittävä, jos ensimmäinen komento suoritetaan hakemistossa, joka sisältää tärkeitä tiedostoja.

Kommentit

  • GNU: n riittävän uusille versioille rm (ominaisuus varastettiin alun perin Solaris IIRC: ltä). Älä huutaa, jos upotettu kevyt rm ei ole yhteensopiva uusimman POSIX-version kanssa.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *