tar:ソートが指定されていない場合は引数の順序を使用しますか?

tar:ソートが指定されていない場合は引数の順序を使用しますか?

GNU tarのマンページには次のように記載されています。

デフォルトは--sort = noneで、オペレーティングシステムによって返された順序でアーカイブメンバーを保存します。

それでは、オペレーティングシステムは何を返しますか?特に、次のような場合に興味があります。保証するtar項目をコマンドライン引数として渡すとき

tar -cf file.tar a b c

abおよびの順序cが維持されます。

答え1

指定されたソート順--sort ただコマンドラインで指定されたファイルとディレクトリのサブディレクトリの順序に影響します。コマンドラインで指定されたパスの順序には影響しません。

あなたの場合、コマンド

tar -cf file.tar a b c

指定された順序に関係なく、ファイルはa最初にアーカイブされ、次にbアーカイブされます。これらのいずれかがディレクトリの場合は、そのディレクトリ内のファイルとサブディレクトリが追加される順序には影響しますが、およびの順序には影響しません。c--sort--sortabc

オペレーティングシステムは、使用時に表示されるのと同じ順序でエントリを返しますls -f。順序は、ディレクトリノードがエントリを保存する順序であり、ファイルが追加および削除される順序(ファイルシステムの実装によって異なります)など、さまざまな要因によって異なります。

関連情報