Android

Sådan fjernes (slettes) bibliotek i Linux

Writing 2D Games in C using SDL by Thomas Lively

Writing 2D Games in C using SDL by Thomas Lively

Indholdsfortegnelse:

Anonim

Der er flere forskellige måder at fjerne mapper i Linux-systemer. Hvis du bruger en Desktop-filhåndtering, såsom Gnome's Files eller KDE's Dolphin, kan du slette filer og mapper ved hjælp af managerens grafiske brugergrænseflade. Men hvis du arbejder på en headless server eller vil fjerne flere mapper på én gang, er din bedste mulighed at slette mapper (mapper) fra kommandolinjen.

, vil vi forklare, hvordan man sletter mapper i Linux ved hjælp af rmdir , rm og find kommandoer.

Før du begynder

Når du fjerner et bibliotek ved hjælp af din Desktop-filhåndtering flyttes biblioteket faktisk til papirkurven og kan let gendannes.

Vær ekstra forsigtig, når du fjerner filer eller mapper fra kommandolinjen, for når biblioteket først er slettet ved hjælp af de forklarede kommandoer, kan det ikke gendannes fuldt ud.

På de fleste Linux-filsystemer kræver sletning af et bibliotek skrivetilladelse på biblioteket og dets indhold. Ellers får du "Operation not tilladt" fejl.

Katalognavne med et mellemrum i dem skal undgås med en tilbagegang ( / ).

Fjernelse af mapper med rmdir

rmdir er et kommandolinjeværktøj til at slette tomme mapper. Det er nyttigt, når du kun vil slette et bibliotek, hvis det er tomt, uden at behøve at kontrollere, om biblioteket er tomt eller ikke.

For at slette et bibliotek med rmdir skal du indtaste kommandoen efterfulgt af navnet på det bibliotek, du vil fjerne. For eksempel at slette et bibliotek ved navn dir1 skriver du:

rmdir dir1

Hvis biblioteket ikke er tomt, får du følgende fejl:

rmdir: failed to remove 'dir1': No such file or directory

I dette tilfælde skal du bruge kommandoen rm eller manuelt fjerne bibliotekets indhold, før du kan slette den.

Fjernelse af mapper med rm

rm er et kommandolinjeværktøj til at slette filer og mapper. I modsætning til rmdir kan kommandoen rm slette både tomme og ikke-tomme mapper.

Som standard fjerner rm ikke biblioteker, når det bruges uden mulighed. For at slette et tomt bibliotek skal du bruge indstillingen -d ( --dir ) og for at slette et ikke-tomt bibliotek, og alt dets indhold skal du bruge indstillingen -r (- --recursive eller -R ).

For eksempel at slette et bibliotek med navnet dir1 sammen med alt dets indhold, du skriver:

rm -r dir1

Hvis et bibliotek eller en fil i biblioteket er skrivebeskyttet, bliver du bedt om at bekræfte sletningen. For at fjerne et bibliotek uden at blive bedt om det, skal du bruge indstillingen -f :

rm -rf dir1

For at fjerne flere mapper på én gang skal du bruge kommandoen rm efterfulgt af navnene på de mapper, der er adskilt med mellemrum. Kommandoen herunder fjerner hvert listet bibliotek og deres indhold:

rm -r dir1 dir2 dir3

Indstillingen -i fortæller rm at bede dig om at bekræfte sletningen af ​​hver undermappe og fil. Hvis biblioteket indeholder en masse filer, kan dette være lidt irriterende, så du kan overveje at bruge indstillingen -I , hvad der kun beder dig om, før du fortsætter med sletningen.

rm -rI dir1

For at fjerne katalogtypen y og trykke på Enter .

rm: remove 1 argument recursively? y

Du kan også bruge regelmæssige udvidelser til at matche og slette flere mapper. For at fjerne alle første niveau-mapper i det aktuelle bibliotek, der slutter med _bak , skal du f.eks. Bruge følgende kommando:

rm -r *_bak

Brug af regelmæssige udvidelser til fjernelse af mapper kan være risikabelt. Det anbefales først at liste katalogerne med kommandoen ls så du kan se, hvilke mapper der vil blive slettet, før du kører rm kommandoen.

Fjernelse af kataloger med find

find er et kommandolinjeværktøj, der giver dig mulighed for at søge efter filer og mapper baseret på et givet udtryk og udføre en handling på hver matchet fil eller bibliotek.

Det mest almindelige scenario er at bruge find kommandoen til at slette mapper baseret på et mønster. For eksempel at slette alle mapper, der slutter med _cache i det aktuelle arbejdsmappe, du vil køre:

find. -type d -name '*_cache' -exec rm -r {} +

Lad os analysere kommandoen ovenfor:

  • /dir - rekursivt søgning i det aktuelle arbejdsmappe ( . ). -type d - begrænser søgningen til mapper. -name '*_cache' - søg kun i mapper, der slutter med _cache -exec - udfører en ekstern kommando med valgfri argumenter, i dette tilfælde er det rm -r . {} + - tilføjer de fundne filer til slutningen af rm kommandoen.

Fjernelse af alle tomme mapper

For at fjerne alle tomme mapper i et katalogtræ, du vil bruge:

find /dir -type d -empty -delete

Her er en forklaring på de anvendte indstillinger:

  • /dir - rekursivt søgning i /dir biblioteket. -type d - begrænser søgningen til mapper. -empty - begrænser søgningen kun til tomme mapper. -delete - sletter alle fundne tomme mapper i undertræen. -delete kan kun slette tomme mapper.

Brug indstillingen -delete med ekstrem forsigtighed. Find-kommandolinjen evalueres som et udtryk, og hvis du først tilføjer indstillingen -delete , vil kommandoen slette alt under de startpunkter, du har angivet. Brug altid -delete som den sidste mulighed, og inden du sletter, skal du teste kommandoen først uden indstillingen -delete .

/ bin / rm: Argumentlisten er for lang

Denne fejlmeddelelse vises, når du bruger kommandoen rm til at fjerne et bibliotek, der indeholder et enormt antal filer. Dette sker, fordi antallet af filer er større end systemgrænsen for størrelsen på kommandolinjeargumentet.

Der er flere forskellige løsninger på dette problem. For eksempel kan du cd til kataloget og manuelt eller ved hjælp af en løkke til at fjerne undermapper en efter en.

Den nemmeste løsning er først at slette alle filer i kataloget med find kommandoen og derefter slette kataloget:

find /dir -type f -delete && rm -r /dir

Konklusion

Med rm og find kan du slette mapper baseret på forskellige kriterier hurtigt og effektivt.

Sletning af mapper er en enkel og nem proces, men du skal være forsigtig med ikke at slette vigtige data.

rm rmdir find terminal