小编dee*_*h n的帖子

ls 或 stat 之类的命令如何区分文件类型?

ls 或 stat 之类的命令如何区分文件类型,对象是文件还是目录?

例如,我创建了这两个对象,考虑到目录也是文件的事实......有一些特殊规则,我想知道在命令的输出中如何将stat它们标记为“目录”和“常规空文件” ”。

$ mkdir testdir;touch testfile
$ stat testdir | head -2;stat testfile | head -2
 File: `testdir'
 Size: 4096            Blocks: 8          IO Block: 4096   directory
 File: `testfile'
 Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Run Code Online (Sandbox Code Playgroud)

后来,我在分别执行目录testdir和文件testfile的stat时做了一个strace。在跟踪输出中,我注意到这些

lstat("testdir/", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
Run Code Online (Sandbox Code Playgroud)

lstat("testfile", {st_mode=S_IFREG|0664, st_size=0, ...}) = 0
Run Code Online (Sandbox Code Playgroud)

有人请告诉我如何st_mode获得这些值S_IFDIRS_IFREG.

我可能听起来很困惑;我确实是。

filesystems

1
推荐指数
1
解决办法
2492
查看次数

标签 统计

filesystems ×1