Wie viele Dateien können Sie maximal in einem Tar-Archiv unter Solaris 11 speichern?

Wie viele Dateien können Sie maximal in einem Tar-Archiv unter Solaris 11 speichern?

Ich muss eine große Anzahl von Dateien (> 100.000) in einem Tar-Archiv speichern und bin auf den folgenden Fehler gestoßen:/bin/sh: /bin/tar: kann nicht ausgeführt werden [Arg-Liste zu lang].

Gibt es Einschränkungen bei UNIX Solaris Tar oder GNU Tar? Oder ist das ein ZFS-Problem? Ich verwende Solaris 11.3 mit ZFS.

Antwort1

Dies ist keine Einschränkung von tar. Sie überschreiten die maximale Größe der Argumente, die an ein Programm übergeben werden können. Wenn die Liste der Dateinamen in einer Datei verfügbar ist, können Sie -Tdie Option von GNU tar verwenden:

tar -c -f output.tar -T filelist.txt

Tar kann die Dateiliste auch von der Standardeingabe empfangen, indem -als Dateiname verwendet wird. Wenn Sie beispielsweise ein Archiv mit allen Dateien und Unterverzeichnissen von erstellen möchten mydir, können Sie die Ausgabe von findan tar übergeben:

find mydir | tar -c -f output.tar -T -

Antwort2

Wie andere bereits gesagt haben, liegt das Problem (wahrscheinlich) an der Länge des Befehls und nicht an der Größe des Archivs. Sie sollten in der Lage sein,

tar cfTar-DateiDatei001 Datei002 … Datei100
tar ufTar-DateiDatei101 Datei102 … Datei200
tar ufTar-DateiDatei201 Datei202 … Datei300
Alternativ können Sie
tar cfTar-DateiDatei001
um das Archiv zu erstellen, und dann
tar cfTar-Datei         Datei002 … Datei100
tar ufTar-DateiDatei101 Datei102 … Datei200
tar ufTar-DateiDatei201 Datei202 … Datei300
(ggf. mit xargs) um etwas hinzuzufügen.

verwandte Informationen