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