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

2

Eu preciso armazenar um grande número de arquivos (> 100.000) em um arquivo tar e encontrar o erro: / bin / sh: / bin / tar: não é possível executar [lista Arg por muito tempo] .

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

    
por Matt Holliday 20.11.2017 / 02:22

2 respostas

5

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 -T do GNU tar:

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

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

find mydir | tar -c -f output.tar -T -
    
por 20.11.2017 / 08:49
1

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

tar cf tarfile file001 file002 … file100
tar uf tarfile file101 file102 … file200
tar uf tarfile file201 file202 … file300
                  ︙
Como alternativa, faça
tar cf tarfile file001
para criar o arquivo, e, em seguida,
tar cf tarfile         file002 … file100
tar uf tarfile file101 file102 … file200
tar uf tarfile file201 file202 … file300
                  ︙
(possivelmente com xargs ) para adicionar a ele.     
por 24.11.2017 / 21:51