如果我tar -cvf
在大小为 937MB 的目录上运行以创建一个可轻松下载的深度嵌套文件夹结构的副本,我是否会冒着填满磁盘的风险,给出以下df -h
输出:
/dev/xvda1 7.9G 3.6G 4.3G 46% /
tmpfs 298M 0 298M 0% /dev/shm
Run Code Online (Sandbox Code Playgroud)
相关问题:
tar
在幕后做什么?小智 28
tar -c data_dir | wc -c
无压缩
或者
tar -cz data_dir | wc -c
使用 gzip 压缩
或者
tar -cj data_dir | wc -c
使用 bzip2 压缩
将打印以字节为单位创建的存档的大小,而不写入磁盘。然后,您可以将其与目标设备上的可用空间量进行比较。
您可以使用以下命令检查数据目录本身的大小,以防对其大小做出错误假设:
du -h --max-depth=1 data_dir
正如已经回答的那样,tar 为存档中的每条记录添加一个标题,并将每条记录的大小四舍五入为 512 字节的倍数(默认情况下)。存档的结尾由至少两个连续的零填充记录标记。因此,您的未压缩 tar 文件总是会比文件本身大,文件数量以及它们与 512 字节边界对齐的方式决定了所使用的额外空间。
当然,文件系统本身使用的块大小可能比单个文件的内容大,所以在解压它时要小心,文件系统可能无法容纳大量小文件,即使它的可用空间大于 tar 大小!
https://en.wikipedia.org/wiki/Tar_(computing)#Format_details
tar 文件的大小为 937MB 加上每个文件或目录所需的元数据大小(每个对象 512 字节),并添加填充以将文件对齐到 512 字节的边界。
一个非常粗略的计算告诉我们,您的数据的另一个副本将为您留下 3.4GB 的可用空间。在 3.4GB 中,我们有大约 700 万条元数据记录的空间,假设没有填充,或者如果您假设每个文件平均有 256 个字节的填充,则更少。因此,如果您要压缩数百万个文件和目录,您可能会遇到问题。
您可以通过以下方式缓解问题
z
或j
选项即时压缩tar
tar
以普通用户身份执行此操作,以便在空间/
不足时不会触及分区上的保留空间。 归档时间: |
|
查看次数: |
18821 次 |
最近记录: |