如何使用tar命令对文件进行分组而不进行压缩?


60

我有一个非常大的文件夹,包含12万多个文件。我需要将它们移动到同一台计算机上的另一个位置(相同分区)。

我想使用tar命令将它们分组为一个单元,然后将mv它们组合到最终位置。

我需要使用什么命令将tar它们全部运行在一起而不压缩任何内容(我需要最快的结果)。


1
为什么要使用tar,而不仅仅是mv(1)文件?或者,如果您不想丢失原稿,请使用cp(1)?
vonbrand

@vonbrand一个人可能想通过网络重新同步一个连续的文件。比同步处理12万个较小的文件要快得多。这是恒定全速到高低之间的差异
mwm

Answers:


85

tar 默认不压缩,只是不添加压缩选项:

tar cvf myfolder.tar myfolder

我在答案中加入了Hennes的评论,因为它添加了有用的信息:

TAR(磁带存档)最初是一个UNIX程序,用于在磁带上创建存档。由于所有设备都被视为unix下的文件,因此很容易不写入磁带而是写入文件。通常使用-f标志完成此操作。命令tar CVF myfolder.tar MyFolder中意味着焦油,Ç reate,v erbose ˚F ILE filename_to_create what_to_tar。在任何地方都没有压缩。Tar存档(作为文件)通常使用compress程序进行压缩并获得扩展名.Z(例如file.tar.Z)。后来,这与z标志一起包含在gtar中


是否会在tar中递归地添加所有子文件夹和文件?
sergserg 2013年

2
@Serg是的,它将。
terdon

1
谢谢。我通常会尝试以简短和长篇形式回答。对于简短的回答,如“是/否,它将不起作用”,并解释了为什么回答更长的原因。了解为什么经常在将来有所帮助。
Hennes 2013年

@Serg,因为并非总是如此,因为手册或说明是如此之好,以至于他们可以马上阅读它们就使事情变得清晰起来,有时最好的方法是继续尝试该命令,然后您将看到它的作用,并且一旦您知道它的功能或有一个好主意,该手册就可以为您确认!使用一小套示例文件即可轻松测试tar,并附有使用方法的示例,而无需在手册的开头或结尾进行介绍。
barlop

请注意,如果需要最快的结果,则应省略“ v”标志以使输出静音。在我的情况下,在AWS t2.medium实例上运行命令时,命令时间从16秒减少到6秒。
David Backeus

6

@terdon的答案是正确的。

但是我在做一个小错误tar cvf myfolder.tar.gz myfoldertar.gz即使没有压缩,我也希望同一路径中文件的结尾名称相同。

因此,如果.gz, .z在tar文件名的末尾添加类似内容,则tar应用程序将理解您要使用某种压缩方式,并将其相应地应用于您输入的内容(gz = gzip)。

因此,如果您要使用这样的扩展名tar.gz,请确保使用标志--no-auto-compress

--no-auto-compress    do not use archive suffix to determine the compression 
program
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.