web-dev-qa-db-ja.com

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内のファイルの正確なサイズを表示できるコマンドはどれですか?

3
hugemeow

これは、procファイルシステムを使用しているためです。 procfsとは の詳細を参照してください。

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

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


編集:

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

lsから取得していませんが、wcを使用してみることができます。

# wc -c /proc/version
138 /proc/version
8
Jon Lin