すべてのファイルと同様に、ディレクトリにもファイルIDがあります。あなたはタイプすることによってそれらを見ることができます
ls -i
IDでファイルコンテンツを表示するにはどうすればよいですか?
ディレクトリ属性をファイルに変更する(Dを削除する)にはどうすればよいですか?
探しているデータがファイルシステムにあるようです。あなたの質問に対する答えは、使用しているファイルシステムによって異なります。 ext3を使用していると仮定します。
ファイルシステム内のデータを表示および変更する高度な機能については、 debugfs(8) を参照してください。ただし、注意してください。このツールを使用すると、実際に破損する可能性があります。これは、スナップショットで仮想マシンを使用する良い機会です(私が推奨したように ここ )。スナップショットを作成してから、ファイルシステムを必要なだけ変更します。以前のスナップショットからVM)をいつでも復元できます。
ファイル名へのiノード:
find / -inum <number>
ディレクトリをファイルに変換することはできません。
ディレクトリ内部データについては、 dirent.h を参照してください。
ディレクトリへのアクセス については、GNU Cライブラリを参照することもできます。
-解決策とその仕組み-つまり-iノードはすべてのディレクトリが記録するものです。実際、各ディレクトリはファイルであり、ファイル名とそれに対応するiノード番号のリストが含まれています。
したがって、-見たい場合は、ここのディレクトリiノード内にあるのはそれを行う方法です-
1)hddでdebugfsを開きます。/dev/disks/by-id /の下に私のものが見つかりました。
debugfs ATA-434 ... blalbalba
次にtypecat <inode number>
orcat filename
ordump <inode number> outfile
そのiノードのデータを取得します!
ちょっと待って!それではありません!
iノードは実際にはデータを含みません。データ(ブロック番号)へのポインターが含まれています。 iノードに実際に含まれているのは、ファイルモード、属性、所有者、グループ、サイズ、リンクなどです。いいこと? debugfsを使用して、そのデータを表示するだけでなく、データを変更することもできます。
これがあなたのやり方です!
1)書き込みモードでdebugfsを開きますdebugfs -w ATA4249...blalbla
2)iノードを変更モードで開き、必要なすべてのフィールドを変更/表示します
mi <inode number>
それでおしまい!