如何获取目录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