it-swarm.com.de

Löschen von Dateien nach dem Hinzufügen zum tar-Archiv

Kann GNU tar viele Dateien zu einem Archiv hinzufügen und jede Datei löschen, wenn sie hinzugefügt wird?

Dies ist nützlich, wenn nicht genügend Speicherplatz für das gesamte tar-Archiv sowie die Originaldateien vorhanden ist.

43
Rory

Verwenden Sie mit GNU tar die Option --remove-files.

60
Fred Foo

Ich hatte eine Aufgabe - Archivdateien und entferne dann in OS installiertes "tar" ohne GNU-Optionen. 

Methode:

Verwenden Sie "xargs" 

Angenommen, wir haben ein Verzeichnis mit Dateien.
Verschieben Sie alle Dateien über die Woche in tar und entfernen Sie sie.
Ich mache ein Archiv (arc.tar) und fügte Dateien hinzu. (Sie können bei jedem Versuch ein neues Archiv erstellen.) 

Lösung:

find ./ -mtime +7 | xargs -I % sh -c 'tar -rf arc.tar % ; rm -f %'
3
Vladimir Azarov

Für kein GNU -Tar können Sie "-u" verwenden, um die Datei pro Datei in einer Schleife zu verarbeiten

tar -cf archive.tar afile
for myfile in dir/*.ext
do
    tar -uf archive.tar $myfile && rm $myfile || echo "error tar -uf archive.tar $myfile"
done
1
E D

Ich bin mir nicht sicher, ob Sie Dateien zu bzip2-Archiven hinzufügen können, ohne sie vorher zu extrahieren. Hier ist jedoch eine Lösung, die mir gerade in den Sinn gekommen ist (mit dem pseudoischen Algorithmus):

1. For each [file] in [all small files]
    1.1 compress [file] into [file].bz2
    1.2 (optionally verify the process in some way)
    1.3 delete [file]
2. For each [bzfile] in [all bzip files from step 1]
    2.1 append to tar (tar rvf compressedfiles.tar [bzfile]
    2.2 (optionally verify the process in some way)
    2.3 delete [bzfile]

Nun solltest du eine tar-Datei haben, die alle Dateien einzeln bzip2: ed-Dateien enthält. Die Frage ist, wie viel Aufwand bzip2 den einzelnen Dateien hinzufügt. Dies muss getestet werden.

0
Tobbe