Solaris 11 で tar アーカイブに保存できるファイルの最大数はいくつですか?

Solaris 11 で tar アーカイブに保存できるファイルの最大数はいくつですか?

多数のファイル (> 100,000) を tar アーカイブに保存する必要があり、次のエラーが発生しました:/bin/sh: /bin/tar: 実行できません [引数リストが長すぎます]

UNIX Solaris tar または GNU tar には制限がありますか? それとも、これは ZFS の問題ですか? 私は ZFS で Solaris 11.3 を実行しています。

答え1

これは tar の制限ではありません。プログラムに渡すことができる引数の最大サイズを超えています。ファイル名のリストがファイル内にある場合は、GNU tar の-Tオプションを使用できます。

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

tar は、 をファイル名として使用して、標準入力からファイル リストを受け取ることもできます-。たとえば、 のすべてのファイルとサブディレクトリを含むアーカイブを作成する場合はmydir、 の出力をfindtar に渡すことができます。

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

答え2

他の人が言っているように、問題は(おそらく)コマンドの長さであり、アーカイブのサイズではありません。次のようにすればいいでしょう。

タールCFtarファイルファイル001 ファイル002 … ファイル100
タールUFtarファイルファイル101 ファイル102 … ファイル200
タールUFtarファイルファイル201 ファイル202 … ファイル300
あるいは、
タールCFtarファイルファイル001
アーカイブを作成し、
タールCFtarファイル         ファイル002 … ファイル100
タールUFtarファイルファイル101 ファイル102 … ファイル200
タールUFtarファイルファイル201 ファイル202 … ファイル300
(おそらくxargs) を追加してください。

関連情報