Kommer rm -rf *.*
att skada ditt filsystem medan rm -rf /
inte gör det detta?
Kommentarer
- Unix och Linux Stack Exchange har varit till hjälp i mer än 6 år, och SuperUser för samma: unix.stackexchange.com/questions/19547 superuser.com/questions/312769 unix.stackexchange.com/questions/302468
Svar
Där ”s inget speciellt för det, rm -rf *.*
är ett kommando med ett jokertecken för filnamn, det tar bort rekursivt alla filer i den aktuella katalogen som innehåller en punkt i deras namn. p> rm -rf /
skulle ge ett fel om att försöka köra rm
i rotkatalogen. Denna är uppdrag av POSIX :
Om […] en operandreso I rotkatalogen ska rm skriva ett diagnosmeddelande till standardfel och göra ingenting mer med sådana operander.
Beroende på på skalet och dess inställningar kan *.*
också matcha ..
för överordnad katalog, men även för /
, att försöka ta bort det är också ett fel.
Ingen av dessa kommer att förstöra filsystemet, rm
kommer bara (försöka) ta bort filer med vanliga filsystemsamtal. Effekten på systemet som helhet, eller användarens filer, kan naturligtvis vara betydande om det första kommandot körs i en katalog som innehåller viktiga filer.
Kommentarer
- för tillräckligt nya versioner av GNU
rm
(funktionen stal ursprungligen från Solaris IIRC). Skrik inte om din inbäddade lättarm
är inte kompatibel med den senaste POSIX.