¿Cuál es la cantidad máxima de archivos que puede almacenar en un archivo tar en Solaris 11?

¿Cuál es la cantidad máxima de archivos que puede almacenar en un archivo tar en Solaris 11?

Necesito almacenar una gran cantidad de archivos (> 100.000) en un archivo tar y me encontré con el error:/bin/sh: /bin/tar: no se puede ejecutar [lista de argumentos demasiado larga].

¿Existen límites con UNIX Solaris tar o GNU tar? ¿O es esto un problema de ZFS? Estoy ejecutando Solaris 11.3 con ZFS.

Respuesta1

Esta no es una limitación del alquitrán. Está excediendo el tamaño máximo de argumentos que se pueden pasar a un programa. Si la lista de nombres de archivos está disponible en un archivo, entonces puede usar -Tla opción GNU tar:

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

Tar también puede recibir la lista de archivos de la entrada estándar utilizándola -como nombre de archivo. Por ejemplo, si desea crear un archivo que contenga todos los archivos y subdirectorios de mydir, puede pasar la salida de findtar:

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

Respuesta2

Como han dicho otros, el problema es (probablemente) la longitud del comando y no el tamaño del archivo. Deberías poder hacer

alquitrán cfarchivo tararchivo001 archivo002 … archivo100
alquitránarchivo tararchivo101 archivo102 … archivo200
alquitránarchivo tararchivo201 archivo202 … archivo300
Alternativamente, haz
alquitrán cfarchivo tararchivo001
para crear el archivo, y luego
alquitrán cfarchivo tar         archivo002… archivo100
alquitránarchivo tararchivo101 archivo102 … archivo200
alquitránarchivo tararchivo201 archivo202 … archivo300
(posiblemente con xargs) para agregarle.

información relacionada