Mac OS X 上的实际文件大小

Mac OS X 上的实际文件大小

我有大量文件夹,每个文件夹都包含大量大小不一的文件(从几个字节到 400kb 左右),大多数文件都较小。我需要获取实际的(而不是磁盘使用量)这些文件夹的大小。有没有办法用像“du”这样的命令来做到这一点?

答案1

默认情况下显示真实文件大小是相当标准的ls,我刚刚验证了这一点。所以:

ls -l <yourfiles>

计算总数:

ls -l <yourfiles> | awk '{sum+=$5} END {print sum}'

如果你的计数需要包含子目录中的文件,常见的解决方案是使用find调用ls

find <yourdir>/. -type f -exec ls -l '{}' \; | awk '{sum+=$5} END {print sum}'

答案2

要查看某个特定文件夹的总数,请使用:

du -s /路径/特定文件夹/

要查看特定文件夹中每个文件夹的总数,请使用星号:

du -s /路径/特定文件夹/*

如果您不拥有这些目录中的所有文件,请使用 sudo 确保所有内容都已计算在内。

编辑:啊,我明白你现在在问什么了。你想要:

du -sk /路径/特定文件夹/

答案3

您可以像这样请求 Mac 世界总数(包括资源分支):

# Put this in a shell function or script, 'macTotal'
osascript - "${1:-.}" <<\EOF | perl -Mbignum -lpe '$_+=0,"\n"'
on run {arg}
    alias POSIX file arg
    tell application "System Events" to get size of result
end run
EOF

$ macTotal ~/Library
4465742628

AppleScript 以科学计数法打印数字。Perl 代码以粗略的方式扩展了科学计数法。

如果你不介意从 GUI 中读取数字,只需打开文件夹的信息窗口即可发现者。报告的大小与系统事件在 AppleScript 中给出。


如果您只关心数据分叉,我会选择与 pra 的答案类似的方法,但使用stat而不是lsxargs而不是以-exec提高效率。

$ find . -type f -print0 | xargs -0 stat -f %z | awk '{t+=$1}END{print t}'
4461971024

答案4

您可以wc -c对每个文件运行该程序。这将返回每个文件中的字符数。这可能需要一段时间,因为它实际上会读取每个文件并计算字符数。

相关内容