我将一个 zip 文件从已安装的驱动器复制到我的虚拟机。现在,当我比较大小时,发现两者du -sh
相差 900mb,而虚拟机上的副本大小较小。
然而,当我这样做时ls -al
,两个 zip 文件的字节数完全匹配。
我很困惑,复制操作到底成功没有?
这里为什么会有差异呢?
编辑:添加输出。文件是使用 rsync 复制的。VM 正在运行 Ubuntu 18.02。
使用 du -sh
~/mountedVM# du -sh dev_preview.zip
7.5G dev_preview.zip
~# du -sh dev_preview.zip
6.6G dev_preview.zip
使用 ls -al
~/mountedVM# ls -al
-rw-r--r-- 1 root root 6986744975 Aug 29 09:17 dev_preview.zip
~# ls -al
-rw-r--r-- 1 root root 6986744975 Aug 30 10:09 dev_preview.zip
答案1
文件系统可能使用稀疏文件或其他方式的“压缩”文件来存储文件内容。然后,磁盘/分区/硬件相关实用程序(例如 fdisk、du、...)会报告实际使用的磁盘空间量
文件相关的实用程序(例如 ls、wc 等)应该以未压缩的形式报告文件中的数据量。
与文件归档实用程序(例如创建 zip、rar、7zip 和 tar.gz 归档的实用程序)进行比较,列出有关归档文件占用空间的信息。
使用例如验证文件的内容
$ sha1sum--帮助 用法:sha1sum [选项]... [文件]... 打印或检查 SHA1(160 位)校验和。 ... $ sha1sum ubuntu-16.04.6-desktop-amd64.iso >chksums.txt $ cat chksums.txt a09607901183ab25c675626024aa402663fa2558 ubuntu-16.04.6-桌面-amd64.iso $ sha1sum -c chksums.txt ubuntu-16.04.6-desktop-amd64.iso:确定 $ time sha1sum ubuntu-16.04.6-desktop-amd64.iso a09607901183ab25c675626024aa402663fa2558 ubuntu-16.04.6-桌面-amd64.iso 已过 3.004 秒,p=100.00,3.004 实际,2.852 用户,0.152 系统。 $ wget http://releases.ubuntu.com/16.04/SHA1SUMS ... $ sha1sum -c SHA1SUMS ubuntu-16.04.6-desktop-amd64.iso:确定 ... $ cat /proc/cpuinfo | 排序 | uniq | grep 模型 型号:60 型号名称:Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz