Sådan slettes filer og mapper i Linux Terminal

Kommandoer rm og   rmdir sletter filer og mapper på Linux, macOS og andre Unix-lignende operativsystemer. De er magen til de del og   deltree kommandoer i Windows og DOS. Disse kommandoer er meget kraftfulde og har en hel del muligheder.

Det er vigtigt at bemærke, at filer og mapper slettes ved hjælp af rmog rmdirikke 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 fjernes filer med rm

Det enkleste tilfælde er at slette en enkelt fil i det aktuelle bibliotek. Skriv rmkommandoen, 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 videregive mere end et 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. Det *repræsenterer flere tegn, og det ?repræsenterer et enkelt tegn. Denne kommando sletter alle png-billedfiler i den aktuelle arbejdsmappe.

rm * .png

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

rm *.?

Hvis en fil er skrivebeskyttet, bliver du bedt om det, før filen slettes. Du skal svare med yeller nog trykke på "Enter".

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

rm -i * .dat

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

rm -f filnavn

Sådan fjernes mapper med rm

For at fjerne et tomt bibliotek skal du bruge indstillingen -d (bibliotek). Du kan bruge jokertegn ( *og ?) i katalognavne, ligesom du kan med filnavne.

rm -d mappe

Hvis du leverer mere end et katalognavn, slettes alle de angivne tomme mapper.

rm -d katalog1 katalog2 / sti / til / katalog3

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

rm -r katalog1 katalog2 katalog3

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 meddelelser skal du bruge indstillingerne -r(rekursiv) og -f(tvang) sammen.

rm -rf-bibliotek

Omhu er påkrævet her. At lave en fejl med rm -rfkommandoen kan medføre datatab eller systemfejl. Det er farligt, og forsigtighed er den bedste politik. Brug rm -rfkommandoen for at få en forståelse af katalogstrukturen og de filer, der slettes af treekommandoen.

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 træ

Kørsel af treekommandoen producerer et letforståeligt diagram over bibliotekets struktur og filer under den mappe, hvorfra den køres.

træ

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

træsti / til / bibliotek

Den rmkommando har også --one-file-system, --no-preserve-root, --preserve-rootmuligheder, men de er kun anbefales til erfarne brugere. Hvis du får noget galt, kan du ved et uheld slette alle dine systemfiler. Se kommandos manuelle side for mere information.

Sådan fjernes mapper med rmdir

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

Det enkleste tilfælde er at slette en enkelt tom mappe. Som med rmkan du videregive flere katalognavne til rmdireller en sti til en mappe.

Slet et enkelt bibliotek i det aktuelle bibliotek ved at sende dets navn til rmdir:

rmdir-bibliotek

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

rmdir mappe1 mappe2 mappe3

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

rmdir / sti / til / bibliotek

Hvis du prøver at slette en mappe, der ikke er tom, rmdirfår du en fejlmeddelelse. I det følgende eksempel rmdirslettes clientskataloget med succes og lydløst, men det nægter at slette projectsbiblioteket, fordi det indeholder filer. Den projectsmappe er tilbage præcis som det var, og filerne i den er uberørt.

Når der vises rmdiren "Katalog ikke tom" -fejl, 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 det, rmdirville det give dig fejlmeddelelsen og ikke gøre noget mere. Du kan tvinge det til at ignorere disse fejl med --ignore-fail-on-non-emptymuligheden, så andre mapper behandles.

I det følgende eksempel er to mapper blevet sendt til rmdir, disse er work/reportsog work/quotes. Den --ignore-fail-on-non-emptymulighed er blevet medtaget i kommandoen. Den work/reportsmappe har filer i det, så rmdirkan ikke slette den. De --ignore-fail-on-non-emptymulighed kræfter rmdirtil at ignorere fejlen og gå videre til den næste mappe det skal proces, der er work/quotes. Dette er en tom mappe og rmdirsletter den.

Dette var den anvendte kommando.

rmdir --ignore-fail-on-tomt arbejde / rapporter / arbejde / citater

Du kan bruge indstillingen  -p (forældre) til at slette en mappe og også til at slette dens overordnede mapper. Dette trick fungerer, fordi det rmdirstarter med målmappen og derefter går tilbage til den overordnede. Den mappe skal nu være tom, så den kan slettes af rmdir, og processen gentager at gå tilbage på den sti, der blev leveret til rmdir.

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

rmdir -p arbejde / fakturaer

Både mappen invoicesog workkatalogerne slettes efter anmodning.

Uanset om du bruger Bash eller en hvilken som helst anden shell, giver Linux fleksible og kraftfulde kommandoer, som du kan slette mapper og filer direkte fra terminalens kommandolinje. Nogle mennesker foretrækker at have en arbejdsgang, der drejer sig om terminalen. Andre har muligvis 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 cronjob, kan det hjælpe med at automatisere rutinemæssige husholdningsopgaver såsom rensning af uønskede logfiler. Hvis du undersøger denne brugssag, skal du huske styrken i disse kommandoer, teste alt omhyggeligt og altid have en ny sikkerhedskopi.