个人感想

个人感想

我想获取一个 78gb 文件夹并将其存储在一个文件中(用于上传到云服务),就好像我将其压缩在存档中一样,但我不想要任何压缩(我没有那么多的 CPU)可用时间)。无论如何,我可以完成这个任务,也许是我不知道的终端命令?

答案1

使用tartar -cf my_big_folder.tar /my/big/folder

恢复存档tar -xf my_big_folder.tar -C /

-C将更改为根目录以恢复您的存档,因为上面创建的存档包含绝对路径。

编辑:由于存档相对较大,最好使用 SSH 或云资源/文件夹的挂载点将其[直接]发送到其最终位置。例如,作为科尔·约翰逊建议:

tar -cf /network/mount/point/my_big_folder.tar /my/big/folder

或者

tar -c /my/big/folder | ssh example.com "cat > my_big_folder.tar"

编辑: 作为《黑光闪耀》还表明,如果您想避免绝对路径,您可以更改为大文件夹的父文件夹,然后tar从那里:

tar -cf /network/mount/point/my_big_folder.tar \
    -C /my/big/folder/location the_big_folder

或者

tar -cC /my/big/folder/location the_big_folder | \
ssh example.com "cat > my_big_folder.tar"

个人感想

是否包含相对路径或绝对路径取决于个人喜好。

在某些情况下,绝对路径是显而易见的,例如,对于灾难恢复情况下的恢复。对于本地项目或集合,通常从所需文件夹的父级存档目录树,以避免混乱当前目录,以防存档意外就地解压。如果大文件夹位于某处深处标准 *NIX 层次结构,开始归档第一个非标准文件夹可能有意义,其中大文件夹偏离了它的目录树。

最后——这里迂腐——tar档案馆成员是总是相对自A)它们可以在任何目录中恢复并且b) tar/创建存档时删除前导。我个人倾向于总是使用-C解压存档时。

答案2

替代方案:cpio

(cd /my/big/folder && find . -depth -print0 | cpio -0o > myfolder.cpio)

解压到当前目录:

cpio -id < myfolder.cpio

注意事项:

  • 如果使用find /my/big/folder而不是cd,存档将包含完整路径,并且提取将尝试遵循它们;
  • 大文件(> 2GB)可能是一个问题;

答案3

要将大文件夹存储到单个文件中而不压缩并带有进度条,可以使用以下一行命令:

tar -cf - ./Downloads/ | (pv -p --timer --rate --bytes > backup.tar)

该命令将保持原始文件夹不变。

要求:

sudo apt-get install -y pv

演示(在我的例子中,我的文件夹是./Downloads/,我的输出文件是adb_int.tar):

在此输入图像描述

鸣谢:该命令结合了 user86969 的回答贾库杰回答

相关内容