5

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

4

3 回答 3

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

于 2010-01-28T07:35:14.923 回答
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
于 2010-01-28T06:18:18.357 回答
0

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

于 2021-04-09T05:21:34.277 回答