Symlink

在讀取文件時執行一個返回字元串的命令

  • May 2, 2016

我有這個想法,也許不可行,但我認為值得一問。

假設使用者正在執行以下命令:

cat ~/file.txt

每當嘗試從該文件中讀取某些內容時,我想改為在後台執行腳本或命令,並將該腳本的響應作為內容返回。

不知何故喜歡這樣做:

ln -s /folder /symlink

但是對於腳本(我的想法):

symlinkcommand /filepath/file.txt "command to run"

希望我說清楚了。如果有任何想法和建議,請回复。

謝謝。

您正在尋找的是可能的,但可能與您想像的不完全一樣。我最常看到它的方式(誠然這是非常罕見的情況)是使用以下mknod命令創建正在讀取的文件命名管道(又名 FIFO)特殊文件:

mknod file.txt p

然後,您需要在單獨的 shell 中啟動要用於生成“文件內容”的腳本,並在完成時自動重新啟動,以便允許多次讀取該特殊文件。腳本的 STDOUT 將被重定向到命名管道,並且腳本將暫停,直到某個其他程序(原始使用者的程序)開始以某種方式讀取管道。一旦腳本結束,“EOF”信號將傳播到使用者程序,使一切看起來正常。

引用自:https://unix.stackexchange.com/questions/280583