Hur man rekursivt tar bort en filtyp i Linux i en katalog och alla dess underkataloger

Ta bort en filtyp rekursivt

Visst vid något tillfälle har du verifierat att du har en värdelös typ av fil i flera mappar, vilket tar lite utrymme men du vill helt enkelt inte ha den på din dator. I macOS skapas till exempel vissa filer .DS_Store som sparar information om en mapps ikon, dess storlek och position, och i Windows finns desktop.ini som är likvärdiga. Vad gör vi om vi har en katalog full av underkataloger och vi vill ta bort dessa eller andra typer av filer? Vad vi måste göra är radera rekursivt Var och en av dem.

Det här är något vi kan göra med alla typer av filer. Till exempel, om vi har en hårddisk full av musik, har vi en spelare som har laddat ner omslagen och vi vill inte ha dem sparade, vi kan använda samma kommando som vi kommer att beskriva nedan för att radera dem. Naturligtvis med tanke på att vi kommer att ta bort katalogfiler och deras underkataloger rekursivt med terminalen och att dessa kommer att gå förlorade för alltid, det gör inte ont att vara försiktig och / eller gör ett test innan du tar bort allt vi vill ta bort.

Ta bort filer av en typ rekursivt från terminalen

Kommandona för exemplet macOS .DS_Store-filer skulle vara följande:

cd ruta/a/directorio
find . -name '*.DS_Store' -type f -delete

Av de tidigare kommandona placerar den första oss i den mapp där vi vill börja, det vill säga den som innehåller alla .DS_Store-filer som vi vill ta bort. Den andra är den som tar bort alla .DS_Store-filer från första mappen och dess undermappar eller kataloger. Om det vi vill är att ta bort bilderna från de tidigare nämnda musikmapparna måste vi sätta tilläggstypen mellan citattecken, till exempel '* .jpg'.

För att vara 100% ärlig är det något jag kommer att göra den dagen jag slutar använda Cantata som standardmusikspelare. Cantata skapar och döljer informationsfiler med samma namn som låtarna som har en punkt och ett lågt fält framför (till exempel ._Song). När jag behöver det kommer kommandot jag måste använda att vara hitta. -namn '._ *' -typ f -radera.

Har den här lilla guiden hjälpt dig att radera filer från terminalen rekursivt?

Grep-kommando
Relaterad artikel:
Grep-kommando: kraftfullt verktyg för att hitta text från Terminal

Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   Sebastian Castro sade

    Tack, men det finns ett fel i din kod. Du måste använda det reguljära uttrycket '*', det vill säga '* .DS_STORE'. Jag rekommenderar att du korrigerar det. För de som har mindre kunskap om bash fungerar inte koden du gav. Hälsningar!