Sådan slettes filer og mapper i Linux-terminalen

Kommandoerne rm og rmdir sletter filer og mapper på Linux, macOS og andre Unix-lignende operativsystemer. De ligner del- og deltree-kommandoerne i Windows og DOS. Disse kommandoer er meget kraftfulde og har en del muligheder.

Det er vigtigt at bemærke, at filer og mapper, der slettes ved hjælp af rm og rmdir, ikke flyttes til papirkurven. De fjernes straks fra din computer. Hvis du ved et uheld sletter filer ved hjælp af disse kommandoer, er den eneste måde, du kan gendanne dem på, fra en sikkerhedskopi.

Sådan fjerner du filer med rm

Det enkleste tilfælde er at slette en enkelt fil i den aktuelle mappe. Skriv kommandoen rm, et mellemrum og derefter navnet på den fil, du vil slette.

rm file_1.txt

Hvis filen ikke er i den aktuelle arbejdsmappe, skal du angive en sti til filens placering.

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

Du kan sende mere end ét filnavn til rm. Hvis du gør det, slettes alle de angivne filer.

rm file_2.txt file_3.txt

Jokertegn kan bruges til at vælge grupper af filer, der skal slettes. * repræsenterer flere tegn og ? repræsenterer et enkelt tegn. Denne kommando ville slette alle png-billedfilerne i den aktuelle arbejdsmappe.

rm *.png

Denne kommando ville slette alle filer, der har en enkelt tegnudvidelse. For eksempel ville dette slette File.1 og File.2, men ikke File.12.

rm *.?

Hvis en fil er skrivebeskyttet, bliver du spurgt, før filen slettes. Du skal svare med y eller n og trykke på “Enter”.

For at reducere risikoen ved at bruge rm med jokertegn, brug -i (interaktiv) mulighed. Dette kræver, at du bekræfter sletningen af ​​hver fil.

rm -i *.dat

Indstillingen -f (kraft) er det modsatte af interaktiv. Den beder ikke om bekræftelse, selvom filer er skrivebeskyttede.

rm -f filename

Sådan fjerner du mapper med rm

For at fjerne en tom mappe, brug -d (mappe) mulighed. Du kan bruge jokertegn (* og ?) i mappenavne, ligesom du kan med filnavne.

rm -d directory

Hvis du angiver mere end ét biblioteksnavn, slettes alle de angivne tomme mapper.

rm -d directory1 directory2 /path/to/directory3

For at slette mapper, der ikke er tomme, skal du bruge indstillingen -r (rekursiv). For at være klar, fjerner dette mapperne og alle filer og undermapper indeholdt i dem.

rm -r directory1 directory2 directory3

Hvis en mappe eller en fil er skrivebeskyttet, bliver du bedt om at bekræfte sletningen. For at slette mapper, der ikke er tomme, og for at undertrykke disse prompter, skal du bruge -r (rekursiv) og -f (force) mulighederne sammen.

rm -rf directory

Her kræves pleje. Hvis du laver en fejl med kommandoen rm -rf, kan det forårsage datatab eller systemfejl. Det er farligt, og forsigtighed er den bedste politik. For at få en forståelse af mappestrukturen og de filer, der vil blive slettet af kommandoen rm -rf, skal du bruge trækommandoen.

  Sådan opretter du forbindelse til internettet fra kommandolinjen på Linux

Brug apt-get til at installere denne pakke på dit system, hvis du bruger Ubuntu eller en anden Debian-baseret distribution. På andre Linux-distributioner skal du bruge din Linux-distributions pakkehåndteringsværktøj i stedet.

sudo apt-get install tree

Kørsel af trækommandoen giver et letforståeligt diagram over mappestrukturen og filerne under den mappe, hvorfra den køres.

tree

Du kan også angive en sti til trækommandoen for at få den til at starte træet fra en anden mappe i filsystemet.

tree path/to/directory

rm-kommandoen har også –one-file-system, –no-preserve-root, –preserve-root, men disse anbefales kun til avancerede brugere. Hvis du får noget galt, kan du ved et uheld slette alle dine systemfiler. Konsulter kommandoens manual side for mere information.

  Sådan sikrer du din Linux-server med fail2ban

Sådan fjerner du mapper med rmdir

Der er en anden kommando, kaldet rmdir, som du kan bruge til at slette mapper. Forskellen mellem rm og rmdir er, at rmdir kun kan slette mapper, der er tomme. Det vil aldrig slette filer.

Det enkleste tilfælde er at slette en enkelt tom mappe. Som med rm kan du videregive flere mappenavne til rmdir eller en sti til en mappe.

Slet en enkelt mappe i den aktuelle mappe ved at sende dens navn til rmdir:

rmdir directory

Slet flere mapper ved at sende en liste med navne til rmdir:

rmdir directory1 directory2 directory3

Slet en mappe, der ikke er i den aktuelle mappe ved at angive den fulde sti til den mappe:

rmdir /path/to/directory

Hvis du prøver at slette en mappe, der ikke er tom, vil rmdir give dig en fejlmeddelelse. I det følgende eksempel sletter rmdir med succes og lydløst klientbiblioteket, men det nægter at slette projektbiblioteket, fordi det indeholder filer. Projektbiblioteket efterlades nøjagtigt, som det var, og filerne i det er uberørte.

Når rmdir giver fejlen “Bibliotek ikke tom”, stopper den med at behandle de mapper, der blev sendt til den på kommandolinjen. Hvis du har bedt den om at slette fire mapper, og den første havde filer i sig, ville rmdir give dig fejlmeddelelsen og ikke gøre mere. Du kan tvinge den til at ignorere disse fejl med indstillingen –ignore-fail-on-non-empty, så andre mapper behandles.

  Sådan sikkerhedskopieres en spøgelsesblog på Linux

I det følgende eksempel er to mapper blevet sendt til rmdir, disse er arbejde/rapporter og arbejde/citater . Indstillingen –ignore-fail-on-non-empty er inkluderet i kommandoen. Mappen arbejde/rapporter har filer i den, så rmdir kan ikke slette den. Indstillingen –ignore-fail-on-non-empty tvinger rmdir til at ignorere fejlen og gå videre til den næste mappe, den skal behandle, som er arbejde/citater. Dette er en tom mappe, og rmdir sletter den.

Dette var den kommando, der blev brugt.

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

Du kan bruge muligheden -p (forældre) til at slette en mappe og også til at slette dens overordnede mapper. Dette trick virker, fordi rmdir starter med målbiblioteket og derefter går tilbage til forælderen. Denne mappe skulle nu være tom, så den kan slettes af rmdir, og processen gentager, at man går op ad stien, der blev givet til rmdir.

I det følgende eksempel er kommandoen, der sendes til rmdir:

rmdir -p work/invoices

Både fakturaer og arbejdsmapper slettes efter ønske.

Uanset om du bruger Bash eller en anden shell, giver Linux fleksible og kraftfulde kommandoer, så du kan slette mapper og filer direkte fra terminalens kommandolinje. Nogle mennesker foretrækker at have en arbejdsgang, der kredser om terminalen. Andre har måske ikke noget valg i sagen. De arbejder muligvis på servere uden en GUI installeret eller på en fjernsession på et hovedløst system såsom en Raspberry Pi. Disse kommandoer er perfekte til den gruppe mennesker.

Men uanset hvilken type arbejdsgang du foretrækker, egner disse kommandoer sig meget godt til at blive inkluderet i shell-scripts. Hvis et script udløses af et cron-job, kan det hjælpe med at automatisere rutinemæssige husholdningsopgaver såsom udrensning af uønskede logfiler. Hvis du undersøger denne brugssag, skal du huske styrken af ​​disse kommandoer, teste alt omhyggeligt og altid vedligeholde en nylig sikkerhedskopi.