Wie finde ich den Inode eines Verzeichnisses?

Wie finde ich den Inode eines Verzeichnisses?

Ich kann bei Google buchstäblich nichts finden, das mir bei der Beantwortung dieser Frage helfen würde. Ich nehme an, es wird ein anderer Parameter an ls -i? übergeben.

Antwort1

Ja, das Argument -i gibt die Inode-Nummer jeder Datei oder jedes Verzeichnisses aus, das der Befehl ls auflistet. Da Sie die Inode-Nummer eines Verzeichnisses ausgeben möchten, würde ich vorschlagen, das Argument -d zu verwenden, um nur Verzeichnisse aufzulisten. Um die Inode-Nummer des Verzeichnisses /path/to/dir auszugeben, verwenden Sie die folgende Befehlszeile:

ls -id /path/to/dir

Aus man ls:

   -d, --directory
          list  directory entries instead of contents, and do not derefer‐
          ence symbolic links
   -i, --inode
          print the index number of each file

Antwort2

Dies funktioniert auch mit stat:

DIR=/
stat -c '%i' $DIR

Ausman stat:

   -c  --format=FORMAT
          use the specified FORMAT instead of the default; output  a  new‐
          line after each use of FORMAT
[...]

   The valid format sequences for files:    
       %i     inode number

Antwort3

-iSie können den Inode der Datei und des Verzeichnisses mit der Option finden

ls -id /home/user/dir

Sie können Informationen über den verbrauchten Inode Ihres Systems erhalten

df -hi

Antwort4

In C++:

#include <sys/stat.h>

ulong getInode( const QString &path )
{
        struct stat st;
        stat( path.toUtf8(), &st );
        return st.st_ino;
}

Dies sollte für Dateien und Ordner funktionieren.

verwandte Informationen