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

如何获取目录inode号码说/home/laks/file.txt我需要laks目录的inode号码。 任何内置函数已经可用? 我想我可以使用stat(),如果我削减文件名…但任何其他解决scheme,而不删除文件名。

#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()

 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