在 Mac OS 10.6 上获得排序的、人类可读的 du 输出的最有效方法是什么?

发布于 2024-09-15 09:41:53 字数 1459 浏览 7 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一世旳自豪 2024-09-22 09:41:53

我在 red hat linux 上使用这个,也许它也可以在 BSD 上工作?

du -sk * | sort -n | awk '
{ if ($1 < 1024) { output("K", 1) }
  else if ($1 < 1048576) { output("M", 1024) }
  else { output("G", 1048576) }
}

function output(size, div)
{
  printf "%d%s\t%s\n", ($1/div), size, $2
}
'

:或者设置为别名,需要一些引用:

alias dusort='du -sk * | sort -n | awk '\''
{ if ($1 < 1024) { output("K", 1) }
  else if ($1 < 1048576) { output("M", 1024) }
  else { output("G", 1048576) }
}
function output(size, div)
{
  printf "%d%s\t%s\n", ($1/div), size, $2
}
'\'''

如果您有任何 TB 文件,则需要扩展它...

I use this on red hat linux, maybe it will also work on BSD?:

du -sk * | sort -n | awk '
{ if ($1 < 1024) { output("K", 1) }
  else if ($1 < 1048576) { output("M", 1024) }
  else { output("G", 1048576) }
}

function output(size, div)
{
  printf "%d%s\t%s\n", ($1/div), size, $2
}
'

Or to set up as an alias some quoting is required:

alias dusort='du -sk * | sort -n | awk '\''
{ if ($1 < 1024) { output("K", 1) }
  else if ($1 < 1048576) { output("M", 1024) }
  else { output("G", 1048576) }
}
function output(size, div)
{
  printf "%d%s\t%s\n", ($1/div), size, $2
}
'\'''

If you have any terabyte files you would need to extend it...

眼前雾蒙蒙 2024-09-22 09:41:53
alias dsize='for dir in *; do du -skh $dir; done | sort -n'

提供如下输出(其中 dataimgutil 是目录):

$ dsize
1.9G     data
4.0K     getLinkMentionCounts.bash
4.0K     img
28K      util
alias dsize='for dir in *; do du -skh $dir; done | sort -n'

Gives output like this (where data, img and util are directories):

$ dsize
1.9G     data
4.0K     getLinkMentionCounts.bash
4.0K     img
28K      util
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文