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