5

/home/laks/file.txt ディレクトリの inode 番号を取得する方法 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 に答える