我在我的目标中使用最新的 BusyBox v1.22.1。我想使用stat -f
或检查文件系统类型df -T
,但 busybox 不支持此类命令。busybox help
显示stat
命令受支持,但在执行时显示为
stat: not found.
如何使用 BusyBox 检查文件系统类型?
答案1
BusyBox 的很多组件都是可选的。根据编译时大小和功能之间的折衷,实用程序和选项可能可用也可能不可用。
在 Linux 上,您可以从 获取文件系统信息/proc
。运行df -P /some/file
以查找 的挂载点/some/file
,然后在其中搜索/proc/mounts
并提取文件系统类型。假设您有 awk 并且安装点中没有空格,以下命令将打印/some/file
当前的文件系统类型:
</proc/mounts awk -v mount_point="$(df -P /some/file | awk 'NR==2 {print $6}')" '$2 == mount_point {print $3}'
答案2
您需要在构建之前启用stat
和:du
.config
CONFIG_DU=y
CONFIG_STAT=y
答案3
此外,busybox 命令可能并不总是具有指向 busybox 的符号链接,或者可能不在您的 PATH 中。在 RHEL6 上,“busybox stat -f /dev/XXXX”有效。
答案4
如果busybox help
显示stat
,则意味着小程序已实现。如果stat
返回“未找到”,则可能只是未创建其链接busybox
(并且 busybox 已配置为在调用小程序时执行文件)。
那么既然你能够运行busybox help
,你也应该能够运行busybox stat
作为以下的替代stat
:
busybox stat -fc %T /