Hallo,
ich habe schon gesucht, aber nichts gefunden (bestimmt steht es irgendwo )
Ich bin gerade beim Testen von tar, und möchte die -multi-volume nutzen.
Die einzelnen Archive sollen erst einmal in ein Verzeichnis geschrieben werden um dann später von Hand auf DVD gebrannt werden.
Tar fordert ja ja vor jedem neuen Volume auf Enter zu drücken und fährt dann fort.
Aber leider wird dabei das gerade erstellte Archiv überschrieben.
Wie stelle ich es an, dass der Archivname, der beim Aufruf von tar, angegeben wird, hochgezählt wird.
z.B.
archiv_1.tar
archiv_2.tar
....
Ich möchte nicht die Split Optin verwenden, da es möglich sein soll jedes Archiv für sich alleine auszulesen. Einschlägige Packprogramme unter Windows können Tar Archive lesen.
Vielen Dank im voraus.
Zähler in Dateinamen verwenden - für tar mit multi-volume
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
Was enthalten die späteren Archive?
Ganze directory subtrees oder nur files eines directories.
du kannst mit einer for schleife und einer sequence arbeiten - z.B. so
macht in einem directory subdirectories von 1 bis 49 und erzeugt darin die files "dev" und "ip" die die eintäge "eth0" bzw. eine sich incrementierende IP erhalten.
den Teil müsstest du durch ein ersetzen
Für das erzeugen einer fortlaufenden Nummer könntest du dir irgendwo eine Variable vorhalten die sich bei jedem erzeugen eines Archives erhöht bzw. beim löschen decrementiert - dann kannst du auch auf die sequence verzichten - wie gesagt - keine Ahnung wie genau das laufen soll bei dir.
Als Gedankenanstoss sollte es genügen. Aja und komprimieren würde ich die Daten schon - so wie oben - bz2.
markus
Ganze directory subtrees oder nur files eines directories.
du kannst mit einer for schleife und einer sequence arbeiten - z.B. so
Code: Alles auswählen
for i in `seq 1 49`; do mkdir $i && pushd $i && echo eth0 >dev && echo 86.110.64.$(($i+150)) >ip && popd;done
den Teil müsstest du durch ein
Code: Alles auswählen
tar -cjvf <archiv-name>{$i}.tar.bz2 <path/to/files_resp._directory_trees>
Für das erzeugen einer fortlaufenden Nummer könntest du dir irgendwo eine Variable vorhalten die sich bei jedem erzeugen eines Archives erhöht bzw. beim löschen decrementiert - dann kannst du auch auf die sequence verzichten - wie gesagt - keine Ahnung wie genau das laufen soll bei dir.
Als Gedankenanstoss sollte es genügen. Aja und komprimieren würde ich die Daten schon - so wie oben - bz2.
markus
Habe ich jetzt nicht ausprobiert, aber so ähnlich könnte es gehen:
in "move.sh" sollte dann sowas drinstehen:
Code: Alles auswählen
tar -cjf temp.tar.bz -MF move.sh -L 4096 /pfad/...
Code: Alles auswählen
#!/usr/bin/sh
cnt = 0
file = "out.$cnt.tar.bz"
while [ -e $file ] ; do
cnt = $cnt + 1
file = "out.$cnt.tar.bz"
done
mv temp.tar.bz $file
danke,
ja das reicht mir ersteinmal als Anstoss.
Hintergrund: Ich wollte versuchen mit tar ein/mehrere multi Volume Archiv(e) in DVD Größe auf einer festplatte zu erzeugen.
Da aber die tar Volumes nach dem ersten den gleichen Namen bekommen wie das erste, muß ich sie umbenenne bovor sie überschrieben werden.
ich war gerade in der Buchhandlung und habe mir mal ein gutes Buch über Shell Scripting besorgt
gruss,
Andre
ja das reicht mir ersteinmal als Anstoss.
Hintergrund: Ich wollte versuchen mit tar ein/mehrere multi Volume Archiv(e) in DVD Größe auf einer festplatte zu erzeugen.
Da aber die tar Volumes nach dem ersten den gleichen Namen bekommen wie das erste, muß ich sie umbenenne bovor sie überschrieben werden.
ich war gerade in der Buchhandlung und habe mir mal ein gutes Buch über Shell Scripting besorgt
gruss,
Andre