PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Shellskript: Einzeiler, der namensaehnliche Leerkopien erstellt



ius
28-08-2014, 18:25
Hallo zusammen,

gerade beiße ich mir die Zähne an einem Einzeiler aus, der folgendes tun soll:

Für jede Datei in einem Baum, die größer 2GB ist, in einem anderen Baum (und dort an der gleichen Stelle) eine leere Datei anlegen,
die genauso heißt, nur mit einer zusätzlichen Dateiendung.

Beispiel:

Für /baum/ast/ast/blatt.dat

sofern größer 2GB,

soll eine leere Datei

/dummies/baum/ast/ast/blatt.dat.dum

angelegt werden.

Dabei ist meine erste Schwierigkeit, die Zieldatei anzulegen, ohne mich vorher um das Anlegen von

/dummies/baum/ast/ast/

kümmern zu müssen.

Die zweite Schwierigkeit ist (wenn ich das Verzeichnis manuell angelegt habe),

blatt.dat.dum

anzulegen.

Ich verzettele mich da entweder mit verschachtelten Pipelines oder nötigem/unnötigem Escapen von Steuerzeichen, usw.

Denken würde ich sowas wie:

find /baum -size 2G -exec echo > /dummies/{}.dum \;

Wobei "echo > " fürs Anlegen einer Leerdatei gedacht ist.

Oder

find /baum -size 2G -print0 | xargs -0 cp --parents /leeredatei /dummies/{}.dum

Nichts davon geht natürlich ;-)
Könnte mir jemand helfen?

Herzlichen Gruß,

ius