我想获取一个 78gb 文件夹并将其存储在一个文件中(用于上传到云服务),就好像我将其压缩在存档中一样,但我不想要任何压缩(我没有那么多的 CPU)可用时间)。无论如何,我可以完成这个任务,也许是我不知道的终端命令?
答案1
使用tar
:
tar -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)可能是一个问题;