@@ Personlig information & webbloggerier

Föregående | Startsidan | Arkivet | Epost | Följande

torsdag 7 december, 2006 12.53: Skapa separata arkivfiler av en svit med mappar

Genom att kombinera metoden för att skapa arkivfiler från kommandoraden med lite find- och xargs-magi kan man arkivera en svit med mappar, i separata arkivfiler.

find . -type d -maxdepth 1 ! -name ".*" -print0 | xargs -0t -n 1 -I % ditto -c -k --keepParent --rsrc --sequesterRsrc "%" "%.zip"

find
kommando för att söka efter filer och mappar som uppfyller olika villkor
.
Var skall sökningen börja? I detta fall i den aktuella arbetsmappen
-type d
Hitta bara noder av typen "directory"
-maxdepth 1
Hitta bara noder maximalt en nivå ner, dvs. bara de mappar som finns i den aktuella mappen - på så sätt slipper man lista alla undermappar
!
Negerar (inverterar) det följande villkoret
-name ".*"
Matchar namn som börjar med punkt (i detta fall, namn som inte börjar med punkt eftersom utropstecknet finns före villkoret)
-print0
Skriv ut matchningarna åtskilda av NULL istället för radbrytning
xargs
Kommando som samlar ihop en mängd argument och bygger nya kommandon
-0
Argumenten åtskiljs av NULL
-t
Skriv ut varje kommando innan det utförs (inte nödvändigt)
-n 1
Exekvera kommandot för ett argument åt gången
-I %
Varje argument sätts in i kommandot istället för den angivna strängen, i detta fall ett procenttecken (men det kan vara en längre identifierar, som t.ex. "gurka")

Efter att ha kontrollerat att mapparna har arkiverats på ett korrekt sätt, kan originalen raderas:
find . -type d -maxdepth 1 ! -name ".*" -print0 | xargs -0t -n 1 rm -R

Tipstack till 2006-12-07_12.53.05!

Föregående | Startsidan | Arkivet | Epost | Följande

Kommentarer

Inga kommentarer inlagda

Lägg till kommentar

Tyvärr kan du inte lägga till kommentarer till notiser som är äldre än 4 veckor.

pihlan - Fredrik Pihlström bluddrar på