通过反复试验,我发现stat "$somepath" --format '%F'
可以返回以下值:
常规档案
目录
符号链接
我希望使用stat
来执行递归目录内容操作,并且我希望确保我能够正确识别每种可能的文件类型。硬链接似乎表现得像我假设的那样,stat
返回目标类型。
此信息未显示在我的man
页面中;它只说:%F file type
(并且它警告stat
可能会在不同的shell之间发生变化;如果这个特殊用法是可移植的,那我会很好,但我主要关注的是bash
)
此列表是否已完成,并且在此情况下是否允许更改其生成的文本,具体取决于执行环境或版本?
注意:我不了解linux,文件系统或命令,所以我可能错过了一些明显的东西
答案 0 :(得分:1)
注意:stat的输出是基于约定的,不同版本的stat(来自不同的作者和历史用法)以及相同stat的不同版本可以并且确实返回不同的输出。
我记得在处理文件(YMMV)时实际看到的文件类型是:
一般情况下,如果您关心文件是什么,最好使用您选择的编程语言中的文件处理库,这将有一些开发能够准确识别文件;使用命令行和脚本不是一种非常强大的做事方式
如果您想深入挖掘,以下是一些主要指向stat的gnu实现的链接:
Old GNU Findutils documentation