Linux rm-kommandot: Allt du behöver veta

0
88
fatmawati achmad zaenuri/Shutterstock.com

Kommandot rm låter dig ta bort en fil eller katalog som skickar dess namn: “rm filnamn” eller “rm -d katalog .” Du kan också inkludera en katalogsökväg. Om det finns filer i katalogen, använd alternativet -r “rm -r katalog” för att radera filer och mappar rekursivt.

Kommandot Linux rm tar bort filer och kataloger. För att använda det här verktyget på ett säkert sätt måste du vara säker på vad som kommer att hända när du trycker på “Enter.” Här är vad du behöver veta.

Innehållsförteckning

Vad är kommandot rm i Linux?
Hur tar man bort filer med rm
Använda jokertecken med rm
Använda rm interaktivt
Använda rm Force-alternativet
Ta bort kataloger med rm
Undvika misstag vid användning rm
Vilken personlig skyddsutrustning?

Vad är rm-kommandot i Linux?

Linux rm-kommandot är främst till för att radera filer. Det är något som de flesta människor stöter på strax efter att de börjat använda Linux. Bara på grund av att du är en nykomling i Linux kommer du sannolikt att göra misstag. Du skapar eller kopierar filer av misstag, eller med fel namn eller till fel plats. Det är allt en del av inlärningskurvan för kommandoraden. Saneringsåtgärderna för sådana misstag involverar rm .

RELATERAT8 stavfel du verkligen måste undvika på Linux

Kommandot rm kan ta bort filer, grupper av filer, kataloger eller kompletta katalogträd. Det är därför det måste användas med försiktighet. Att använda rm är inte svårt, men straffet för misslyckande är högt.

När en fil raderas med rm är den borta. Den har inte flyttats till papperskorgen. Den utplånas omedelbart. Det betyder inte att du ska undvika att använda rm . Men för att använda den på ett säkert sätt måste du vara medveten om vad den kan göra och se till att du använder den på rätt sätt.

Vissa verktyg är farligare än andra och mycket mindre förlåtande mot misstag. Det är därför det aldrig har funnits en film som heter The Texas Wrench Massacre. rm är inte en skiftnyckel, det är definitivt en motorsåg.

Människor använder motorsågar hela dagen varje dag, och så länge de använder en ansvarsfullt och medvetet går det bra. Det är samma affär med rm . När du drar ut rm ur verktygsväskan bör du sakta ner och kontrollera och sedan dubbelkolla din kommandorad.

rm-kommandot är en körbar fil, det är inte en del av skal. Så även om vi använder Bash här, är det standard Linux rm, inte en speciell Bash rm.

RELATERAT: Kommandorader: Varför stör folk fortfarande med dem?

Hur man tar bort filer med rm

Det enklaste sättet att använda rm är att ange namnet på en fil som du vill ta bort.

rm config.gc

Du återgår tyst till kommandoraden. rm antar den klassiska, näraliggande Linux-hållningen att om den inte klagar på någonting kan du anta att den gjorde vad du bad om. Att ange ett filnamn som detta gör att rm letar efter filen i den aktuella arbetskatalogen.

Du kan ange flera filnamn på kommandoraden. Du kan också ange en katalogsökväg om en fil du vill ta bort inte finns i den aktuella katalogen.

rm memlog.sh /home/dave/dev-archive/config.gc

Återigen, ingenting rapporteras om rm lyckas ta bort de angivna filerna.

RELATERAT: 37 viktiga Linux-kommandon du bör känna till

Använda jokertecken med rm

Jokertecken låter dig ange grupper eller samlingar av filer utan att behöva lista de enskilda filerna på kommandoraden.

Asterisken “*” representerar vilken sekvens av tecken som helst, inklusive inga. Frågetecknet “?” representerar vilket enskilt tecken som helst.

För att kontrollera att dina jokertecken kommer att matcha vad du förväntar dig att de ska, och inget mer, kan du använda dem med ls innan du använder dem med rm.

För att radera alla PNG-filer i den aktuella katalogen, använd “*.png.” Detta betyder vilken sekvens av tecken som helst följt av “.png” kommer att matchas. När filerna har raderats kan vi använda ls för att verifiera att de har försvunnit.

ls *.png rm *.png ls *.png

På vår testdator har vi två filer i den aktuella katalogen med namn som börjar med “config.& #8221;

Vi kan ta bort båda dessa genom att använda jokertecken för asterisk. Det matchar båda filerna eftersom rm letar efter filnamn som börjar med “config”, följt av valfri teckensekvens. På en fil är den teckensekvensen “.sl3”, filnamnstillägget. Det andra filnamnet har inga tecken efter “config”, men eftersom asterisken matchar alla tecken eller inga tecken, matchar den även det filnamnet.

ls config* rm config* ls config*

< img src="http://www.howtogeek.com/pagespeed_static/1.JiBnMqyl6S.gif" />

Du kan använda frågetecknet i par. Detta kommer att radera filer som har filtillägg på två tecken exakt.

ls *.?? rm *.?? ls *.??

RELATERAT: 15 specialtecken Du behöver veta för Bash

Använda rm interaktivt

Ett säkert sätt att använda rm är att tvinga den att be om bekräftelse innan den raderar varje fil. Alternativet -i (interaktivt) låter dig göra detta. När du lägger till det här alternativet på kommandoraden kommer rm att fråga dig före varje radering, vilket ger dig en chans att gå över åtgärder som du inte hade tänkt dig.

Vi använder -i’ (interaktivt) alternativ i detta kommando. Den försöker ta bort alla filer med en filändelse med ett enda tecken.

rm -i *.?

Varje matchande fil presenteras i tur och ordning. Om du svarar “y” eller “Y” filen raderas. Om du svarar “n” behålls filen. Faktum är att om du svarar med något annat än “y” eller “y”, filen behålls. Du kan bara trycka på “Enter” och filen behålls.

Du kan snabbt arbeta igenom din lista med filer, ta bort eller hoppa över filer för att välja de du vill ta bort. Som vi kommer att se kan du använda alternativet i- (interaktivt) med andra rm-alternativ.

Linux-kommandon Filer tar · pv ·cat · tac · chmod · grep ·  diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold ·uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strängar · typ · byt namn på · zip · packa upp ·< /strong> montera · umount · installera · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm · scp · gzip · chattr · cut ·hitta · umask · wc Processes alias · skärmen · överst · snygg · renice · framsteg · strace · systemd · tmux · > chsh · historik · at · batch · gratis · som · dmesg · chfn · usermod ·ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · ja · döda · sömn · sudo · su · tid · groupadd · usermod ·< /strong> grupper · lshw · avstängning ·starta om · stopp · poweroff · passwd · lscpu · crontab · date · bg · fg · pidof · nohup · pmap Nätverk netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · vem · whoami ·· iptables · ssh-keygen · ufw · arping · brandvägg

RELATERAT: Bästa Linux-bärbara datorer för utvecklare och entusiaster

Använda rm Force-alternativet

Om du försöker ta bort en fil som är skrivskyddad ber rm dig om bekräftelse innan den raderar filen. Det är ett bra skyddsnät, men ett som kan bli tråkigt om du har många filer att radera.

rm geonames.sl3

Alternativet -f (force) instruerar rm att aldrig fråga. Du säger till det “Ja, ta bort alla filer som du normalt skulle fråga mig om.” Det hindrar också rm från att klaga på obefintliga filer.

rm -f geonames.sl3

Alternativet -f (force) används ofta när du tar bort en kapslad uppsättning filer och kataloger.

Ta bort kataloger med rm

Kommandot rm kan valfritt också ta bort kataloger, tillsammans med filerna de innehåller. Detta liknar kommandot rmdir, men rmdir kan inte ta bort kataloger med filer i dem. Det tar bara bort tomma kataloger. Kommandot rm kan enkelt ta bort kataloger som innehåller filer och andra kataloger.

RELATERATHur man tar bort filer och kataloger i Linux-terminalen

Att ta bort en katalog liknar att ta bort en fil. Vi anger namnet på katalogen på kommandoraden. Vi måste inkludera alternativet -d (katalog). Som vi gjorde när vi raderade filer kan vi ge namnet på flera kataloger. Vi kan tillhandahålla en sökväg till katalogen som inte finns i den aktuella arbetskatalogen.

rm -d old-projects

Om katalogen innehåller filer kommer detta att misslyckas.

För att ta bort en katalog och dess innehåll, använd flaggan -r (rekursiv). Detta tar bort katalogen, dess filer och alla kapslade kataloger den innehåller.

rm -d archive rm -r archive

Det andra kommandot lyckas.

För att växla rm till full- i motorsågsläge kan vi kombinera alternativen -r (rekursiv) och -f (kraft). Detta talar om för rm att rekursivt ta bort alla filer och kataloger i ett katalogträd, även om de är skrivskyddade och utan att någonsin uppmana oss.

På vår testdator har vi en katalog som heter “migrerad kod.” Den innehåller filer och en annan katalog som heter “6502.” Den “6502” katalogen innehåller också filer och en annan katalog som heter “ASM.” Det finns filer i den katalogen också. Vissa av filerna är skrivskyddade.

Vi inkluderar även kommandot -v (verbose) så att rm talar om för oss vad den gör.

rm -rfv migrated-code

I utdata kan vi se att filerna tas bort och när de& #8217;är tom, katalogerna tas också bort.

Undvika misstag när du använder rm< /h2>

Mellanslag och andra konstiga tecken i filnamn kan ge problem. Filnamn som börjar med ett bindestreck “-” kan till exempel misstas för kommandoradsalternativ. Om vi ​​har en fil som heter “-contributors.txt”, kommer rm att försöka bearbeta namnet som en sekvens av kommandoradsalternativ.

Eftersom rm inte har ett alternativ som heter “-c“, misslyckas kommandoradens analys och filen raderas inte. För att radera filen måste du föregå den med “./” för att tillhandahålla en sökväg till den.

rm -contributors.txt rm ./-contributors.txt

Mellanslag i filnamn är också problematiska. Ange antingen hela filnamnet eller använd tabbkomplettering för att infoga namnet på filen på kommandoraden åt dig, undvik mellanslagen när den gör det. Om du inte använder något av dessa alternativ kommer rm att behandla varje del av filnamnet som en individuell fil.

RELATERATHur man hanterar utrymmen i filnamn på Linux

Här har vi två filer, en som heter “backup” och en som heter “backup to delete.” Vi kan visa problemet med dessa filnamn med hjälp av ls. Om vi ​​försöker använda ls på “säkerhetskopian för att radera” fil och vi inte escape eller citerar filnamnet, misslyckas kommandot.

ls -hl backup för att radera

ls klagar på att den inte kan hitta filer som heter “to” eller “radera”, men den hittar en fil som heter “backup.” Det är vad rm kommer att göra också. Den kommer att klaga på två saknade filer, och den raderar sedan filen som heter “backup”, vilket inte är vad vi ville ha.

rm backup för att radera < p>

rm tror att det fungerar med tre filer, “backup&#8221 ;, “till” och “radera.” Den klagar på att den inte kan hitta “att” och “radera”, men den hittar och raderar “säkerhetskopia.”

Genom att citera filnamnet kan rm ta bort rätt fil.

rm ' säkerhetskopia för att radera'

Du kan också undkomma mellanslagen med omvänt snedstreck ““, så här:

rm backup to delete

Om du använd tabbkomplettering för att ange dina filnamn, de kommer automatiskt att escapes om det behövs.

Vilken PPE?

Till skillnad från verkliga motorsågar, det finns ingen personlig skyddsutrustning som du kan använda med rm.

Det du kan göra är att kontrollera din syntax med ls innan du provar det med rm, och använda det interaktiva läget så att du kan bestämma vad som ska raderas.

För övrigt är det praxis tills du känner dig bekväm och säker. Det säkraste sättet att göra det är att kopiera ett gäng offerfiler till en katalog och öva på dem.

RELATERAT: Ta bort filer äldre än x dagar på Linux< /strong>

LÄS NÄSTA

  • › Hur man tar bort flera underkataloger med ett Linux-kommando
  • › Nybörjarnörd: Hur man börjar använda Linux-terminalen
  • › Hur man säkert tar bort filer på Linux
  • › Ta bort filer äldre än x dagar på Linux
  • › 8 dödliga kommandon du aldrig bör köra på Linux
  • › Hur man återställer raderade filer på Linux med testdisk
  • › Hur man hanterar filer från Linux-terminalen: 11 kommandon du behöver veta
  • › Så här ser du UFC 283 Teixeira vs Hill Live Online