Wenn man Verzeichnis(se) mit einigen tausend Dateien packen möchte, kann man schnell folgende Fehlermeldung beim Packen erhalten:
bash: /bin/tar: Argument list too long
Bedeutet, dass das Pack-Programm "tar" sich versucht hat eine Liste mit allen zu packenden Dateinamen zu erstellen. Dabei ist die Maximallänge der Liste überschritten worden.
Lösung
Erstellen Sie zuerst eine Datei mit allen zu packenden Dateinamen. Dafür können Sie z.Bsp. folgenden Befehl benutzen:
find /zu/packen -name '*.txt' -print > files.list
Ersetzen Sie "/zu/packen" durch den Verzeichnisnamen, welchen Sie archivieren möchten. In diesem Fall werden nur die Textdateien (*.txt) gelesen. Wenn Sie alle Dateien lesen möchten, dann ersetzen Sie das '*.txt' bitte durch '*'.
Anschließend übergeben Sie diese Datei als Packanweisung:
tar -cvzf backup.tar.gz --files-from files.list
Nachdem das taz.gz-Archiv (hier: backup.tar.gz) fertig erstellt wurde, können Sie die Dateiliste wieder löschen:
rm files.list