ls -lは/proc内のファイルのファイルサイズ0を表示しますが、catはコンテンツを生成します

ls -lは/proc内のファイルのファイルサイズ0を表示しますが、catはコンテンツを生成します
# cat /proc/version
Linux version 2.6.18-308.8.2.el5.028stab101.1 (root@rhel5-build-x64) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)) #1 SMP Sun Jun 24 20:25:35 MSD 2012
# ls -l /proc/version
-r--r--r-- 1 root root 0 Aug 22 10:07 /proc/version

ファイル サイズは 0 と報告されていますが、コンテンツは含まれています。これはどのように機能するのでしょうか?

それは/proc何らかの仮想ファイルシステムだからでしょうか?

のファイルの正確なサイズを表示できるコマンドはどれですか/proc?

答え1

ファイルシステム内にいるからですproc。詳細についてはprocfsとは何か

/proc/version には、Linux カーネルのバージョン、ディストリビューション番号、gcc のバージョン番号 (カーネルの構築に使用)、および現在実行中のカーネルのバージョンに関連するその他の関連情報が含まれます。

これらは実際のファイルではありません。プロセス情報をファイル階層として表示する便利な方法です。


編集:

非現実的であることはわかっていますが、そのサイズを知りたい場合はどうすればいいですか?

からは取得できませんlsが、以下を使用して試すことができますwc:

# wc -c /proc/version
138 /proc/version

関連情報