Ste*_*nio 4 linux filesystems bash files
我已经使用rsync
包括符号链接、硬链接、权限、删除目标文件等方式复制了一个文件夹。它们应该非常相同。
一个文件夹位于 USB 驱动器上,另一个位于本地磁盘上。
如果我运行:du -bls
在两个文件夹上,大小会略有不同。
我的du
支持--apparent-size
和它被应用-s
并且-l
应该计算硬链接的内容。
如何解释这种差异以及如何获得实际总数?
两个文件系统都是ext4,唯一的区别是U盘是加密的。
编辑:
我挖了下来找到了实际上不同的文件夹,我找到了一个,内容并不特别(没有块设备,没有管道,没有硬或符号链接,没有零字节文件),特殊之处可能是其中有几个小文件. 区别在于此特定文件夹的 872830 与 881022。
我也在du -blsc
两个文件夹中运行,在这种情况下结果是相同的。
我使用的命令的一些额外细节:
$ du -Pbsl $LOCALDIR $USBDIR | cut -f1
872830
881022
$ du -Pbslc $LOCALDIR/*
[...]
868734 total
$ du -Pbslc $USBDIR/*
[...]
868734 total
$ ls -la $USBDIR | wc
158 1415 9123
$ ls -la $LOCALDIR | wc
158 1415 9123
$ diff -sqr --no-dereference $LOCALDIR $USBDIR | grep -v identical
[No output and all identical if I remove the grep]
Run Code Online (Sandbox Code Playgroud)
Kus*_*nda 11
由于您使用 复制了文件rsync
,然后使用比较了两组文件diff
,并且由于diff
报告没有差异,因此两组文件是相同的。
大小差异可能可以通过两个目录结构中实际目录节点的大小来解释。在某些文件系统上,如果删除文件或子目录,目录不会被截断,从而留下比实际需要的目录节点稍大的目录节点。
如果您在某个时候保留了许多后来被删除的文件,这可能会留下大的目录节点。
例子:
$ mkdir dir
$ ls -ld dir
drwxr-xr-x 2 kk wheel 512 May 11 17:09 dir
Run Code Online (Sandbox Code Playgroud)
$ touch dir/file-{1..1000}
$ ls -ld dir
drwxr-xr-x 2 kk wheel 20480 May 11 17:09 dir
Run Code Online (Sandbox Code Playgroud)
$ rm dir/*
$ ls -ld dir
drwxr-xr-x 2 kk wheel 20480 May 11 17:09 dir
$ du -h .
20.0K ./dir
42.0K .
$ ls -R
dir
./dir:
Run Code Online (Sandbox Code Playgroud)
请注意,即使我删除了我创建的 1000 个文件,该dir
目录仍然使用 20 KB。
归档时间: |
|
查看次数: |
1672 次 |
最近记录: |