För att radera en fil, filer eller en mapp i Linux är Linux-kommandot rm eller rmdir. Kommandot rm betyder “radera” och används för att ta bort filer och kataloger. Genom att använda olika alternativ kan du ta bort filer, kataloger och till och med innehållet i kataloger. Till exempel kommer rm filnamn att ta bort en fil, medan rm -r katalognamn tar bort en katalog och allt dess innehåll.
Kommandot rmdir betyder “ta bort katalog” och används specifikt för att ta bort tomma kataloger. Om en katalog innehåller filer eller underkataloger, kommer kommandot rmdir inte att radera den och ett felmeddelande kommer att visas. Däremot kan kommandot rm med alternativet -r ta bort icke-tomma kataloger. I grund och botten är rm mer mångsidigt, medan rmdir är mer specialiserat på att ta bort tomma kataloger.
I det här inlägget diskuterar vi olika sätt att använda rm och rmdir.
Hur man använder rm
1. Ta bort en fil
rm [file]
Kommandot rm tar bort en enda fil. För att göra detta, skriv rm följt av namnet på filen du vill ta bort.
Exempel:
Följande kommando används för att ta bort en specifik fil som heter example.txt som finns i en katalog som heter myfolder.
rm myfolder/example.txt
Nedan är ett exempel på hur det fungerar:
- Låt oss säga att du har en katalog som heter myfolder och i den katalogen finns en fil som heter example.txt.
- Kör kommandot rm myfolder/example.txt.
- Exempel.txt-filen i myfolder kommer att raderas och inget utdatameddelande kommer att visas i terminalen som standard.
- Om du försöker komma åt filen example.txt igen får du ett felmeddelande som Ingen sådan fil eller katalog.
Innan du kör kommandot, om du hade:
myfolder/ └── example.txt
Efter att ha kört kommandot skulle strukturen vara:
myfolder/
2. Radera filer utan bekräftelse
rm -f [file]
Det här alternativet tillåter användare att radera skrivskyddade filer utan bekräftelse.
Exempel:
Anta att du har en fil som heter file1.txt i din nuvarande katalog och du vill ta bort den. Du kan köra följande kommando:
rm -f file1.txt
Eftersom alternativet -f används kommer inget bekräftelsemeddelande att visas och filen raderas omedelbart. Inga resultat kommer att visas i terminalen om operationen lyckas. Om du försöker se innehållet i katalogen efteråt, kommer du att upptäcka att 1.txt-filen inte längre finns där.
3. Ta bort flera filer
rm [file1] [file2] [file3]
Använd kommandot rm med filnamn som argument för att radera flera filer samtidigt.
Exempel:
Innan du kör kommandot, låt oss säga att du har följande filer i din katalog:
file1.txt file2.txt file3.txt otherfile.txt
Kör kommandot rm fil1.txt fil2.txt fil3.txt.
Efter att ha kört kommandot raderas filerna file1.txt, file2.txt och file3.txt och deras katalog ser nu ut så här:
otherfile.txt
4. Visa utmatningsmeddelande
rm -v [filename]
Alternativet -v (verbose) låter dig få information om vad som raderas.
Exempel:
När du kör kommandot rm -v example.txt, här är utdata du får:
removed 'example.txt'
I det här exemplet raderas filen example.txt och systemet skriver ut ett meddelande som bekräftar att filen har tagits bort. Om filen inte finns kommer ett felmeddelande som rm: kan inte ta bort ‘example.txt’ att visas: ingen sådan fil eller katalog visas istället.
5. Be om bekräftelse innan du tar bort en fil
rm -i [filename]
Det här alternativet används för att begära bekräftelse innan du tar bort en fil. Att skriva y (ja) bekräftar, att skriva n (nej) slutar.
Exempel:
Låt oss säga att du har en fil som heter example.txt och du kör kommandot:
rm -i example.txt
Systemet kommer att visa dig ett meddelande som:
remove regular file 'example.txt'?
Du måste sedan skriva y (för ja) på (för nej) för att bekräfta eller avvisa raderingen. Om du skriver y och trycker på Enter kommer filen example.txt att raderas. Om du skriver n förblir filen intakt.
remove regular file 'example.txt'? y
Efter detta kommer filen example.txt att raderas om du bekräftar med y.
Hur man använder rmdir
Detta kommando tar bort katalogen och filerna i katalogen. Det finns ingen signifikant skillnad med kommandot rm -r förutom att det inte kan användas för att radera en fil.
Allmän syntax för kommandot rmdir:
$ rmdir [OPTION...] [DIRECTORY...]
1. Ta bort en katalog
rmdir [directory]
Använd det här kommandot för att radera en katalog, men den kommer bara att raderas om den är tom.
Exempel:
Anta att du har en katalog som heter myfolder och den är tom. När du kör kommandot:
rmdir myfolder
Myfolder-katalogen kommer att tas bort och det kommer inget utmatningsmeddelande om operationen lyckas.
Men om min mapp inte är tom eller inte finns får du ett felmeddelande. Till exempel, om min mapp innehåller filer eller underkataloger kan du se:
rmdir: failed to remove 'myfolder': Directory not empty
Eller om min mapp inte finns:
rmdir: failed to remove 'myfolder': No such file or directory
2. Ta bort flera kataloger
rmdir [folder1] [folder2] [folder3]
Detta kommando låter dig ta bort flera kataloger samtidigt, men de måste alla vara tomma.
Exempel:
Kommandot rmdir folder1 folder2 folder3 på Linux försöker ta bort kataloger som heter folder1, folder2 och folder3. Detta kommando kommer bara att lyckas om dessa tre kataloger är tomma; annars kommer ett felmeddelande att visas.
Nedan är ett exempel på hur detta kan fungera:
Om mapp1, mapp2 och mapp3 är tomma kataloger, kommer kommandot att radera dem och det kommer inget utmatningsmeddelande.
Om någon av dessa kataloger inte är tomma eller inte finns, kommer ett felmeddelande att visas för varje problematisk katalog.
Exempel på resultatet om mapp2 inte är tom:
rmdir: failed to remove 'folder2': Directory not empty
I det här fallet skulle mappar1 och 3 fortfarande raderas om de var tomma, men mappar2 skulle förbli intakta.
3. Ta bort överordnade kataloger
rmdir -p [directory-path]
Alternativet -p tar bort den angivna katalogen och dess överordnade kataloger.
Exempel:
Nedan är ett exempel på hur kommandot rmdir -p folder_a/folder_b skulle fungera:
Låt oss säga att du har en katalogstruktur så här:
folder_a └── folder_b
Om både mapp_a och mapp_b är tomma, kommer kommandot rmdir -p folder_a/mapp_b att radera mapp_b först och sedan, eftersom mapp_a blir tom, kommer det också att raderas mapp_a.
Om det fanns filer eller underkataloger inuti folder_a eller folder_b, skulle kommandot inte ta bort dem och du skulle få ett felmeddelande som:
rmdir: failed to remove 'folder_a/folder_b': Directory not empty
I det framgångsrika fallet skulle det inte finnas några resultat och båda katalogerna skulle raderas.
