C程序:如何获取父目录的inode编号?

时间:2010-01-28 05:58:53

标签: linux inode

如何获取目录inode编号/home/laks/file.txt 我需要laks目录的inode数量。任何内置功能已经可用? 我想我可以使用stat(),如果我剪切文件名...但任何其他解决方案,而不删除文件名。

3 个答案:

答案 0 :(得分:2)

#include <libgen.h>
#include <sys/stat.h>
...
struct stat statbuf;
if (stat(dirname(argv[1]), &statbuf) != -1)
    process_inode_number(statbuf.st_ino);

请注意,dirname()可能会修改字符串,因此如果您仍然需要它,或者它可能是字符串文字(位于只读内存中),那么请使用strdup()来创建字符串dirname()的字符串副本。

答案 1 :(得分:0)

a=/home/laks/file.txt
dir=${a%/*}
set -- $(ls -ldi $dir)
echo $1

或者如果你想要递归目录

find /path -type f -name "*.txt" -printf 'stat -c "%%n:%%i" "%h"\n' | sort -u |bash

答案 2 :(得分:0)

尝试:ls -ali 在外壳上。您可以在第 3 列找到 inode 个数字。