Qual é o número máximo de arquivos que você pode armazenar em um arquivo tar no Solaris 11?

Qual é o número máximo de arquivos que você pode armazenar em um arquivo tar no Solaris 11?

Preciso armazenar um grande número de arquivos (> 100.000) em um arquivo tar e encontrei o erro:/bin/sh: /bin/tar: não é possível executar [lista de argumentos muito longa].

Existem limites com o tar UNIX Solaris ou o tar GNU? Ou isso é um problema do ZFS? Estou executando o Solaris 11.3 com ZFS.

Responder1

Esta não é uma limitação do tar. Você está excedendo o tamanho máximo de argumentos que podem ser passados ​​para um programa. Se a lista de nomes de arquivos estiver disponível em um arquivo, você poderá usar a opção GNU tar -T:

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

Tar também pode receber a lista de arquivos da entrada padrão usando -como nome do arquivo. Por exemplo, se você deseja criar um arquivo contendo todos os arquivos e subdiretórios de mydir, você pode passar a saída de findpara tar:

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

Responder2

Como já foi dito, o problema é (provavelmente) o comprimento do comando e não o tamanho do arquivo. Você deveria ser capaz de fazer

alcatrão cfarquivo tarifárioarquivo001 arquivo002… arquivo100
alcatrãoarquivo tarifárioarquivo101 arquivo102… arquivo200
alcatrãoarquivo tarifárioarquivo201 arquivo202… arquivo300
Alternativamente, faça
alcatrão cfarquivo tarifárioarquivo001
para criar o arquivo e, em seguida,
alcatrão cfarquivo tarifário         arquivo002… arquivo100
alcatrãoarquivo tarifárioarquivo101 arquivo102… arquivo200
alcatrãoarquivo tarifárioarquivo201 arquivo202… arquivo300
(possivelmente com xargs) para adicionar a ele.

informação relacionada