mjw*_*ing 0 server command-line files disk-usage
有人可以让我知道我应该使用哪种工具吗?我正在尝试在 Ubuntu Server VM 上运行它。所以我相信我需要一个像铁饼这样的工具。
用作基于屏幕的终端程序(curses/ncurses 等):
请参阅ncdu- 示例输出:
ncdu 1.10 ~ Use the arrow keys to navigate, press ? for help
--- /usr/share/icons -----------------------------------------------------------
189.2MiB [##########] /oxygen
169.3MiB [######## ] /hicolor
130.2MiB [###### ] /HighContrast
123.9MiB [###### ] /gnome
74.0MiB [### ] /nuvola
57.9MiB [### ] /Faience
46.5MiB [## ] /Breathe
46.1MiB [## ] /Faenza-Blue-Dark2
43.2MiB [## ] /AwOken
40.1MiB [## ] /elementary-xfce
31.9MiB [# ] /AwOkenDark
26.4MiB [# ] /elementary
Total disk usage: 1.7GiB Apparent size: 1.4GiB Items: 308833
Run Code Online (Sandbox Code Playgroud)
在逐行文本模式的终端上使用:
显示当前目录中子目录和文件的排序大小:(
不显示文件,见下文)
在包含您要测量的目录的目录中运行此命令,
在您的示例中为 $HOME:
du -sch .* * | sort -hr | less
Run Code Online (Sandbox Code Playgroud)
或者,在更详细的长选项形式中使用相同的命令:
du --summarize --total --human-readable .* * | sort --human-numeric-sort --reverse | less
Run Code Online (Sandbox Code Playgroud)
这表明
du-当前目录内的磁盘使用情况,-s( --summarize) - 显示每件商品的总价值,-c( --total) - 以及作为所有每项值的总和的全局总值,-h( --human-readable) - 显示大小为 6.8G、4.0K、5M 等,而不是字节数,.* - 列出以点为第一个字符命名的文件和目录,* - 以及所有其他文件和目录,| sort -hr - 对结果进行排序,以相反的顺序处理人类可读的文件大小,| less - 并在寻呼机中显示结果列表,最大的在顶部。
注意:根据所使用的 shell 及其选项,.*在没有以exists 开头的文件名的目录中使用.可能会导致错误。在这种情况下, the.*是多余的,可以省略(这就是错误试图告诉你的)
输出行示例,按原始排序顺序:
Run Code Online (Sandbox Code Playgroud)39G total 7.7G Downloads 6.8G .local 3.4G .mozilla 2.6G .thunderbird 1.6G dev 1.4G .cache 490M work 7.3M AnInterestingPaper.pdf 60K .bazaar 8.0K .gitconfig 4.0K .tigrc
要获得问题的确切答案,需要将文件从列表中排除。它使列表更具可读性,因此值得一试;只是在 shell 中手动键入命令时不会,因为它有点长。因此,用于脚本等:
用于find仅列出目录(不要使用find . -foo目录参数的通用语法来防止./结果列表中的文件名出现前缀):
find .* * -maxdepth 0 -type d -print0 | du --files0-from=- -sch | sort -hr | less
Run Code Online (Sandbox Code Playgroud)
用于图形桌面(不是要求的终端):(
没有要求,但为完成任务添加了有关良好 GUI 工具的简短提示。)
见gdmap和filelight(或baobab)。两者都提供了非常有趣的图表,为了获得最佳的直观视图,值得尝试gdmap与其他两个结合使用。