Finns det en skillnad mellan rm -rf / och rm -rf *. *?

Kommer rm -rf *.* att skada ditt filsystem medan rm -rf / inte gör det detta?

Kommentarer

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ätta rm är inte kompatibel med den senaste POSIX.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *