私の知る限り、名前付きパイプはディスクに書き込まれず、メモリに格納されます。これが名前付きパイプを作成する方法です-
$ mkfifo pipe21
$ grep "simple" SimpleDoc.txt > pipe21 &
[1] 2775
$ cat pipe21
Very simple doc that contains plaintext.
[1]+ Done grep --color=auto "simple" SimpleDoc.txt > pipe21
この後、システムを再起動しました。ただし、再起動した後でも、現在のディレクトリにpipe21が表示されます。何故ですか?
いいえ、ディスクに書き込まれません。コマンド mkfifo pipe21
は、ファイルシステム上に対応するデバイスを作成します。多くの場合、これらのデバイスは/dev
ただし、名前付きパイプ(別名FIFO)は、必ずしもこのディレクトリに保持する必要はありません。
ウィキペディアの記事からの抜粋
名前付きパイプは、他のファイルと同じように削除できます。
$ rm my_pipe
FIFOを作成します。
$ pwd
/home/saml
$ mkfifo pipe21
FIFOデバイスを確認してください:
$ ls -l | grep pipe
prw-rw-r-- 1 saml saml 0 Jul 24 12:22 pipe21
$ file pipe21
pipe21: fifo (named pipe)
デバイスを削除します。
$ rm pipe21
$ ls -l | grep pipe
名前付きパイプはファイルシステムの一部です。ファイル名を持つものはすべてファイルシステムの一部です。それが永続ストレージ(つまりディスク上)にあるファイルシステムである場合、システムの再起動後も存続します。
名前付きパイプのファイルシステムエントリには、名前、通常のメタデータ(時間、アクセス許可など)、および「これは名前付きパイプです」というフラグがあります。パイプを通過するデータはファイルシステムには行きません。ただし、名前付きパイプ自体はファイルシステムにあります。