Er der en forskel mellem rm -rf / og rm -rf *. *?

Vil rm -rf *.* ødelægge dit filsystem, mens rm -rf / ikke gør dette?

Kommentarer

Svar

Der “er ikke noget særligt for det, rm -rf *.* er en kommando med et filnavn wildcard, det vil rekursivt fjerne alle filer i den aktuelle mappe, der indeholder en prik i deres navne.

rm -rf / ville give en fejl ved forsøg på at køre rm i rodmappen. Denne er påkrævet af POSIX :

Hvis […] en operand-reso lves til rodmappen skal rm skrive en diagnosticeringsmeddelelse til standardfejl og gøre intet mere med sådanne operander.

Afhængigt af på skallen og dens indstillinger kan *.* muligvis også matche .. for den overordnede bibliotek, men også for /, forsøg på at fjerne det er også en fejl.

Ingen af dem vil ødelægge filsystemet, rm vil kun (forsøge at) fjerne filer ved hjælp af de sædvanlige filsystemopkald. Effekten på systemet som helhed eller brugerens filer kan naturligvis være betydelig, hvis den første kommando udføres i et bibliotek, der indeholder vigtige filer.

Kommentarer

  • til tilstrækkelig nye versioner af GNU rm (funktion oprindeligt stjålet fra Solaris IIRC). Bed ikke til at græde, hvis din indlejrede lette rm er ikke kompatibel med den nyeste POSIX.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *