In meinen Simulationen werden oftmals viele Dateien erzeugt. Damit bin ich schon das ein oder andere Mal an die Grenzen für die Zahl der erlaubten Dateien und den verfügbaren Speicherplatz (quota
) gestoßen. Abgesehen davon dauert es länger, wenn man anstatt einer großen Datei viele kleine Dateien herunterlädt.
Daher verschiebe ich die Dateien regelmäßig in ein gepacktes tar-Archiv. Im folgenden Befehl werden alle Dateien mit der Endung .plot
in ein neu erstelltes Archiv plot.tar.gz
verschoben.
tar --remove-files -czf plot.tar.gz *.plot |
- –remove-files
- Diese Option sorgt dafür, dass die Orginal-Dateien gelöscht werden, sobald sie ins Archiv kopiert wurden.
- -c
- Diese Option sorgt dafür, dass ein neues Archiv erzeugt wird. Der Name des Archivs wird mit der Option
-f
angegeben.
Alternativ können mit der Option-r
Dateien zu einem bestehenden Archiv hinzugefügt werden:tar --remove-files -rf plot.tar *.plot
Archive, an die man Dateien anhängen möchte, dürfen allerdings nicht gepackt sein (siehe
-z
). Ansonsten bekommt man folgende Fehlermeldung:tar: Cannot update compressed archives tar: Error is not recoverable: exiting now
- -z
- Diese Option sorgt dafür, dass das Archiv mit Hilfe von gzip komprimiert wird.
- -f
- Diese Option legt den Namen des zu behandelnden Archivs fest. Der Name muss (mit einem Leerzeichen getrennt) direkt nach
-f
stehen.
Generell ist die Reihenfolge der Optionen egal. Allerdings sollte man darauf achten, dass bei Optionen die einen Wert erwarten (z.B. -f
), der Wert weiterhin hinter der Option zu finden ist. Zudem müssen die hinzugefügten Dateien ganz am Ende stehen. Hier einige Beispiele für gültige und ungültige Befehle:
# Korrekt: tar --remove-files -czf plot.tar.gz *.plot tar --remove-files -c -z -f plot.tar.gz *.plot tar -f plot.tar.gz --remove-files -zc *.plot # Fehlerhaft: # Die Namen der zu archivierenden Dateien stehen nicht am Ende tar *.plot --remove-files -czf plot.tar.gz # Der Name des Archivs steht nicht hinter -f tar --remove-files -cfz plot.tar.gz *.plot |
Hinweis: Auf Mac OS X-Systemen (oder FreeBSD) ist meistens BSDtar installiert (tar --version
ergibt z.B. „bsdtar 2.6.2 – libarchive 2.6.2“). Im Gegensatz zu GNU tar gibt es bei BSDtar die Option --remove-files
nicht.