在 GNU tar 中,联机帮助页显示:
默认值为 --sort=none,它按照操作系统返回的顺序存储存档成员。
但是操作系统返回什么?特别是,我很感兴趣,如果是的话保证当我将 tar 条目作为命令行参数传递时
tar -cf file.tar a b c
a
、b
和的顺序c
被保留。
答案1
指定的排序顺序--sort
仅有的影响命令行上指定的文件和目录子目录的排序。它不影响命令行上给出的路径的顺序。
在你的情况下,命令
tar -cf file.tar a b c
无论指定的顺序如何,都会a
先存档b
,然后存档。如果其中任何一个是目录,则 using将影响从这些目录添加文件和子目录的顺序,但不会影响,和 的顺序。c
--sort
--sort
a
b
c
操作系统返回条目的顺序与使用 时出现的顺序相同ls -f
。该顺序是目录节点存储条目的顺序,并且可能取决于许多因素,例如添加和删除文件的顺序(它取决于文件系统实现)。