Slik sletter du filer og kataloger i Linux-terminalen

Kommandoene rm og rmdir sletter filer og kataloger på Linux, macOS og andre Unix-lignende operativsystemer. De ligner på del- og deltree-kommandoene i Windows og DOS. Disse kommandoene er veldig kraftige og har ganske mange alternativer.

Det er viktig å merke seg at filer og kataloger som slettes ved hjelp av rm og rmdir, ikke blir flyttet til papirkurven. De fjernes umiddelbart fra datamaskinen. Hvis du ved et uhell sletter filer ved hjelp av disse kommandoene, er den eneste måten du kan gjenopprette dem på fra en sikkerhetskopi.

Hvordan fjerne filer med rm

Det enkleste tilfellet er å slette en enkelt fil i gjeldende katalog. Skriv inn rm-kommandoen, et mellomrom og deretter navnet på filen du vil slette.

rm file_1.txt

Hvis filen ikke er i gjeldende arbeidskatalog, oppgi en bane til filens plassering.

rm ./path/to/the/file/file_1.txt

Du kan sende mer enn ett filnavn til rm. Hvis du gjør det, slettes alle de angitte filene.

rm file_2.txt file_3.txt

Jokertegn kan brukes til å velge grupper av filer som skal slettes. * representerer flere tegn og ? representerer et enkelt tegn. Denne kommandoen ville slette alle png-bildefilene i gjeldende arbeidskatalog.

rm *.png

Denne kommandoen ville slette alle filer som har en filtype med ett tegn. For eksempel ville dette slette File.1 og File.2, men ikke File.12.

rm *.?

Hvis en fil er skrivebeskyttet, vil du bli spurt før filen slettes. Du må svare med y eller n og trykke «Enter».

For å redusere risikoen for å bruke rm med jokertegn, bruk alternativet -i (interaktivt). Dette krever at du bekrefter slettingen av hver fil.

rm -i *.dat

Alternativet -f (kraft) er det motsatte av interaktivt. Den ber ikke om bekreftelse selv om filene er skrivebeskyttet.

rm -f filename

Hvordan fjerne kataloger med rm

For å fjerne en tom katalog, bruk alternativet -d (katalog). Du kan bruke jokertegn (* og ?) i katalognavn akkurat som du kan med filnavn.

rm -d directory

Hvis du oppgir mer enn ett katalognavn, slettes alle de angitte tomme katalogene.

rm -d directory1 directory2 /path/to/directory3

For å slette kataloger som ikke er tomme, bruk alternativet -r (rekursivt). For å være tydelig, fjerner dette katalogene og alle filer og underkataloger i dem.

rm -r directory1 directory2 directory3

Hvis en katalog eller en fil er skrivebeskyttet, vil du bli bedt om å bekrefte slettingen. For å slette kataloger som ikke er tomme og for å undertrykke disse ledetekstene, bruk alternativene -r (rekursiv) og -f (force) sammen.

rm -rf directory

Her kreves det omsorg. Å gjøre en feil med kommandoen rm -rf kan føre til tap av data eller systemfeil. Det er farlig, og forsiktighet er den beste politikken. For å få en forståelse av katalogstrukturen og filene som vil bli slettet av kommandoen rm -rf, bruk trekommandoen.

  Hvordan spille Subnautica på Linux

Bruk apt-get for å installere denne pakken på systemet ditt hvis du bruker Ubuntu eller en annen Debian-basert distribusjon. På andre Linux-distribusjoner, bruk Linux-distribusjonens pakkehåndteringsverktøy i stedet.

sudo apt-get install tree

Å kjøre trekommandoen gir et enkelt å forstå diagram over katalogstrukturen og filene under katalogen den kjøres fra.

tree

Du kan også angi en bane til trekommandoen for å få den til å starte treet fra en annen katalog i filsystemet.

tree path/to/directory

rm-kommandoen har også –one-file-system, –no-preserve-root, –preserve-root, men disse anbefales kun for avanserte brukere. Hvis du får noe galt, kan du ved et uhell slette alle systemfilene dine. Rådfør deg med kommandoen manuell side for mer informasjon.

  Slik bruker du GeForce Now-spillstrømming på Linux

Hvordan fjerne kataloger med rmdir

Det er en annen kommando, kalt rmdir, som du kan bruke til å slette kataloger. Forskjellen mellom rm og rmdir er at rmdir bare kan slette kataloger som er tomme. Det vil aldri slette filer.

Det enkleste tilfellet er å slette en enkelt tom katalog. Som med rm, kan du sende flere katalognavn til rmdir , eller en bane til en katalog.

Slett en enkelt katalog i gjeldende katalog ved å sende navnet til rmdir:

rmdir directory

Slett flere kataloger ved å sende en liste med navn til rmdir:

rmdir directory1 directory2 directory3

Slett en katalog som ikke er i gjeldende katalog ved å spesifisere hele banen til den katalogen:

rmdir /path/to/directory

Hvis du prøver å slette en mappe som ikke er tom, vil rmdir gi deg en feilmelding. I det følgende eksempelet sletter rmdir med suksess, og stille, klientkatalogen, men den nekter å slette prosjektkatalogen fordi den inneholder filer. Prosjektkatalogen blir stående nøyaktig som den var, og filene i den er urørt.

Når rmdir gir en feilmelding om at katalogen ikke er tom, slutter den å behandle katalogene som ble sendt til den på kommandolinjen. Hvis du har bedt den om å slette fire kataloger og den første hadde filer i den, vil rmdir gi deg feilmeldingen og ikke gjøre noe mer. Du kan tvinge den til å ignorere disse feilene med alternativet –ignore-fail-on-non-empty slik at andre kataloger blir behandlet.

  Hva er en TTY på Linux? (og hvordan du bruker tty-kommandoen)

I følgende eksempel har to mapper blitt sendt til rmdir, disse er arbeid/rapporter og arbeid/sitater . Alternativet –ignore-fail-on-non-empty er inkludert i kommandoen. Arbeids-/rapportmappen har filer, så rmdir kan ikke slette den. Alternativet –ignore-fail-on-non-empty tvinger rmdir til å ignorere feilen og gå videre til neste mappe den må behandle, som er arbeid/sitater. Dette er en tom mappe, og rmdir sletter den.

Dette var kommandoen som ble brukt.

rmdir --ignore-fail-on-non-empty work/reports /work/quotes

Du kan bruke alternativet -p (foreldre) for å slette en katalog og for å slette dens overordnede kataloger. Dette trikset fungerer fordi rmdir starter med målkatalogen og går deretter tilbake til overordnet. Den katalogen skal nå være tom, slik at den kan slettes av rmdir, og prosessen gjentar å gå tilbake til banen som ble gitt til rmdir.

I følgende eksempel er kommandoen som sendes til rmdir:

rmdir -p work/invoices

Både fakturaene og arbeidskatalogene slettes etter ønske.

Enten du bruker Bash eller et annet skall, gir Linux fleksible og kraftige kommandoer for deg å slette kataloger og filer rett fra terminalens kommandolinje. Noen foretrekker å ha en arbeidsflyt som dreier seg om terminalen. Andre har kanskje ikke noe valg i saken. De kan jobbe på servere uten en GUI installert eller på en ekstern økt på et hodeløst system som en Raspberry Pi. Disse kommandoene er perfekte for den gruppen mennesker.

Men uansett hvilken type arbeidsflyt du foretrekker, egner disse kommandoene seg veldig godt til å bli inkludert i shell-skript. Hvis et skript utløses av en cron-jobb, kan det hjelpe med å automatisere rutinemessige rengjøringsoppgaver som å rense uønskede loggfiler. Hvis du undersøker denne brukssaken, husk kraften i disse kommandoene, test alt nøye og vedlikehold alltid en nylig sikkerhetskopi.