Какое максимальное количество файлов можно сохранить в архиве tar в Solaris 11?

Какое максимальное количество файлов можно сохранить в архиве tar в Solaris 11?

Мне нужно сохранить большое количество файлов (> 100 000) в архиве tar, и я столкнулся с ошибкой:/bin/sh: /bin/tar: невозможно выполнить [список аргументов слишком длинный].

Есть ли ограничения в UNIX Solaris tar или GNU tar? Или это проблема ZFS? Я использую Solaris 11.3 с ZFS.

решение1

Это не ограничение tar. Вы превышаете максимальный размер аргументов, которые можно передать программе. Если список имен файлов доступен в файле, то вы можете использовать -Tопцию GNU tar:

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

Tar также может получить список файлов из стандартного ввода, используя -в качестве имени файла. Например, если вы хотите создать архив, содержащий все файлы и подкаталоги mydir, вы можете передать вывод findtar:

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

решение2

Как уже говорили другие, проблема (вероятно) в длине команды, а не в размере архива. Вы должны быть в состоянии сделать

смола срtarfileфайл001 файл002 … файл100
тар уфtarfileфайл101 файл102 … файл200
тар уфtarfileфайл201 файл202 … файл300
В качестве альтернативы, сделайте
смола срtarfileфайл001
создать архив, а затем
смола срtarfile         файл002 … файл100
тар уфtarfileфайл101 файл102 … файл200
тар уфtarfileфайл201 файл202 … файл300
(возможно с xargs) для добавления к нему.

Связанный контент