什么是“绑定挂载”?我怎么做一个?到底有什么好处呢?
有人告诉我要为某些东西使用绑定安装,但我不明白它是什么或如何使用它。
有时,过程替换不会按预期工作。下面是一个例子:
输入:
gcc <(echo 'int main(){return 0;}')
Run Code Online (Sandbox Code Playgroud)
输出:
/dev/fd/63: file not recognized: Illegal seek
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
输入:
但是当与不同的命令一起使用时,它会按预期工作:
grep main <(echo 'int main(){return 0;}')
Run Code Online (Sandbox Code Playgroud)
输出:
int main(){return 0;}
Run Code Online (Sandbox Code Playgroud)
我注意到与其他命令类似的失败(即期望来自进程替换的文件的命令不能使用/dev/fd/63
或类似)。这次失败gcc
只是最近的一次。是否有一些我应该注意的一般规则来确定进程替换何时会以这种方式失败并且不应该使用?
我在 Ubuntu 12.04 上使用这个 BASH 版本(我也在 arch 和 debian 中看到过这个):
GNU bash,版本 4.3.11(1)-release (i686-pc-linux-gnu)