计算文件夹大小而不计算链接

计算文件夹大小而不计算链接

我需要计算 NTFS 驱动器上的文件夹(及其子文件夹)下创建的“真实”文件的大小,其中“真实”是由于硬/软链接、连接等而不存在的所有文件。

目前有什么工具可以做到这一点?(命令行或图形)

更多细节:

我猜这种能力只有在适当的情况下才会有用,所以,为了避免因猜测我“真正想如何使用它”而产生疑问,我会提前提到我的用例……

我已经开始使用韓國我正在尝试评估实际磁盘使用情况。鉴于该node_modules文件夹(由 创建时pnpm)包含指向pnpm商店的链接文件夹,我知道这些文件夹中的文件不应计算在内。目录统计似乎忽略了这些文件夹,但我需要确定这一点。

更新(2019/12/02):

这似乎比我想象的要复杂。请参阅此问题:添加大小/磁盘使用情况基准

答案1

一种方法是使用FSCTL_获取_NTFS_文件_记录. 链接是文件记录的属性。

作为奖励,它将枚举dir命令不会显示的内容($MFT、$LogFile 等)。

答案2

这样的事情对你不起作用吗?

(Get-ChildItem -Recurse 'node_modules' | 
? { $_.LinkType -eq $Null } | 
Measure-Object -Sum Length).Sum

$_.LinkType -eq $Null过滤掉所有链接类型。

答案3

使用 du 不足以不追踪链接。您可以使用此代码:

find /home/somedirectory/ -exec du -s {} + | awk '{total = total + $1}END{print (total / 1024 / 1024) "MB"}'

相关内容