如何使用 tar 命令在不压缩的情况下对文件进行分组?

ser*_*erg 77 linux tar

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

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

我需要什么命令tar一起运行它们而不压缩任何东西(我需要最快的结果)。

ter*_*don 109

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

tar -cvf myfolder.tar myfolder
Run Code Online (Sandbox Code Playgroud)

我在回答中包含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 中

  • @Serg 是的,它会的。 (2认同)
  • 请注意,如果需要最快的结果,您应该省略“v”标志以静默输出。就我而言,在 AWS t2.medium 实例上运行命令时,命令时间从 16 秒减少到 6 秒。 (2认同)

小智 7

@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
Run Code Online (Sandbox Code Playgroud)