2017-03-09 76 views
0

通过试验和错误我发现下面的值可以通过stat "$somepath" --format '%F'返回:

  1. 定期文件

  2. 目录

  3. 符号链接

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

此信息未出现在我的man页面;它只是说:%F file type

(并警告说,stat可能壳之间变化,那将是很好,如果这个特殊的用法是便携式,但我主要专注于bash

是这份名单完全是stat允许在这种情况下根据执行环境或版本更改它生成的文本?

注:我不是知识渊博的关于Linux,文件系统或命令,所以我可能已经错过了明显的东西在这里

回答

1

当心:统计的输出约定基于不同版本的统计(来自不同的作者和历史使用情况)以及相同统计的不同版本可以并且返回不同的输出。

,我其实可以记得文件(因人而异)工作时看到的文件类型有:

  • 常规*文件(常规空文件是一个妙趣横生,经常被忽视的区别)
  • 目录
  • 符号链接
  • FIFO
  • 。*特殊文件
  • 插座
  • 信号量
  • 端口
  • 。*内存对象

一般来说,如果您关心文件是什么,那么使用您选择的编程语言中的文件处理库要好得多,因为它将进行一些开发以便能够准确识别文件;使用命令行和脚本是没有做的事情

这里的一个非常可靠的方法是一些链接,主要是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

相关问题