stat" $ somepath"可以返回哪些可能的值? - 格式'%F'%F'%

时间:2017-03-09 07:47:44

标签: linux file-type

通过反复试验,我发现stat "$somepath" --format '%F'可以返回以下值:

  1. 常规档案

  2. 目录

  3. 符号链接

  4. 我希望使用stat来执行递归目录内容操作,并且我希望确保我能够正确识别每种可能的文件类型。硬链接似乎表现得像我假设的那样,stat返回目标类型。

    此信息未显示在我的man页面中;它只说:%F file type

    (并且它警告stat可能会在不同的shell之间发生变化;如果这个特殊用法是可移植的,那我会很好,但我主要关注的是bash

    此列表是否已完成,并且在此情况下是否允许更改其生成的文本,具体取决于执行环境或版本?

    注意:我不了解linux,文件系统或命令,所以我可能错过了一些明显的东西

1 个答案:

答案 0 :(得分:1)

注意:stat的输出是基于约定的,不同版本的stat(来自不同的作者和历史用法)以及相同stat的不同版本可以并且确实返回不同的输出。

我记得在处理文件(YMMV)时实际看到的文件类型是:

  • 常规。*文件(常规空文件是一种有趣的,经常被忽视的区别)
  • 目录
  • 符号链接
  • FIFO
  • 。*特殊档案
  • 插座
  • 旗语
  • 端口
  • 。*记忆对象

一般情况下,如果您关心文件是什么,最好使用您选择的编程语言中的文件处理库,这将有一些开发能够准确识别文件;使用命令行和脚本不是一种非常强大的做事方式

如果您想深入挖掘,以下是一些主要指向stat的gnu实现的链接:

GNU Findutils documentation

Old GNU Findutils documentation

Common file types

The man page is fairly uninformative as you suggest

GNU stat related source code

GNU file type related source code