当我在 Linux/GNU 发行版环境中工作时,我经常使用那个美妙的命令
du --max-depth=1 /
Run Code Online (Sandbox Code Playgroud)
这为您提供了root
目录中每个文件夹的大小。今天我在 AIX 工作,而 sysadmin 不想听说 GNU。
是否有任何工具或命令行允许--max-depth
在 AIX 上为du
命令重现开关?
只需从子目录中删除行(假设目录名称中没有换行符):
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)