更多: zhilu jiaocheng

创建稀疏文件

  1. 可以使用“dd”命令的“seek”选项创建稀疏文件。
# dd if=/dev/zero of=sparse_file bs=1 count=0 seek=512M
0+0 records in
0+0 records out
0 bytes (0 B) copied, 0.000213705 s, 0.0 kB/s
# ls -hl sparse_file
-rw-r--r--. 1 root root 512M Dec  3 05:51 sparse_file
# du -sh sparse_file
0       sparse_file
  1. 要使用“ls”命令查看文件的磁盘使用情况,我们可以使用“-s”选项:
# ls -lhs sparse_file
0 -rw-r--r--. 1 root root 512M Dec  3 05:51 sparse_file
  1. 要使用“du”查看文件的外观大小,我们可以使用“-apparent-size”选项:
# du -h --apparent-size sparse_file
512M    sparse_file
如何使用'dd'命令在Linux中创建稀疏文件

什么是稀疏文件

稀疏文件(sparse files)是预先分配了大量空间的文件,而不会占用文件系统中的全部空间。
它们对于减少为虚拟化来宾创建循环文件系统或者大型磁盘镜像等所涉及的时间和磁盘空间非常有用。
稀疏文件通常用于磁盘镜像、数据库快照、日志文件等。

稀疏文件的优点

稀疏文件的优点是只在实际需要时才分配存储:节省了磁盘空间,即使文件系统上的可用空间不足,也可以创建大文件。

稀疏文件的缺点

缺点是稀疏文件可能会变得碎片化。
文件系统可用空间报告可能具有误导性,使用不明确支持它们的程序复制稀疏文件可能会复制文件的整个未压缩大小,包括不在磁盘上的稀疏、大部分为零的部分,这会失去文件中的稀疏属性。

我们可以通过 /var/log/lastlog 文件看到这种行为。

# ls -lh /var/log/lastlog
-rw-r--r--. 1 root root 286K Dec  3 04:50 /var/log/lastlog
# du -sh /var/log/lastlog
12K     /var/log/lastlog

如何复制稀疏文件

使用不明确支持稀疏文件的程序复制稀疏文件可能会复制文件的整个未压缩大小,包括稀疏文件。
因此,当我们使用 cp 命令复制稀疏文件时,目标文件将更改为完全分配的文件。
要通过将目标副本保留为稀疏文件来复制稀疏文件,请使用以下任何命令。

# cp --sparse=always source_file new_file
# rsync --sparse source_file new_file
# cpio --sparse
# tar --sparse
日期:2020-09-17 00:13:28 来源:oir作者:oir