在 AIX 上重现磁盘使用命令的“--max-depth=”开关

Kiw*_*iwy 3 disk-usage aix

当我在 Linux/GNU 发行版环境中工作时,我经常使用那个美妙的命令

du --max-depth=1 /
Run Code Online (Sandbox Code Playgroud)

这为您提供了root目录中每个文件夹的大小。今天我在 AIX 工作,而 sysadmin 不想听说 GNU。
是否有任何工具或命令行允许--max-depth在 AIX 上为du命令重现开关?

Sté*_*las 9

只需从子目录中删除行(假设目录名称中没有换行符):

du | grep -v '/.*/'
Run Code Online (Sandbox Code Playgroud)

或者:

du | awk -F/ 'NF <= 2'
Run Code Online (Sandbox Code Playgroud)

请注意,它不会比 GNU 慢得多,du --max-depth=1因为代价高昂的部分是lstat所有需要为两者完成的文件。

如果您不能保证目录名称中不会包含换行符:

du .//. | awk '
  function process() {
    if (p != "" && split(p, a, "/") <= 4) {
      sub("//.", "", p);
      print p
    }
  }
  /\/\// {process(); p=$0; next}
  {p = p "\n" $0}
  END {process()}'
Run Code Online (Sandbox Code Playgroud)