Mar*_* N. 6 linux mount filesystems du
如果我尝试
du -s -h -x /*
Run Code Online (Sandbox Code Playgroud)
它将尝试检查直接安装在 / 下的所有文件系统(真实的和伪的),例如 /dev、/proc、/sys、/run 和 /home(/home 位于额外的分区上)。
我认为它来自*的shell扩展,给du一个明确包含这些挂载点的参数列表。
有没有办法让 du 不检查挂载的文件系统,即使挂载点包含在参数列表中?
我真的不想输入 / 的所有子目录只是为了避免它们出现在参数列表中。
您仍然可以使用以下方法进行过滤mountpoint(如果您的系统上可用):
for a in /*; do mountpoint -q -- "$a" || du -s -h -x "$a"; done
Run Code Online (Sandbox Code Playgroud)
如果mountpoint不可用但可用stat(虽然stat仍然不是 POSIX,但它可能更常见),您将stat必须手动比较输出:
rootdevice="$(stat -c %D /)"
for a in /*; do [ "$rootdevice" = "$(stat -c %D -- "$a")" ] && du -s -h -x "$a"; done
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6494 次 |
| 最近记录: |