以非特权用户身份运行时,meld 无法访问 /dev/fd/* 的可能原因是什么?

以非特权用户身份运行时,meld 无法访问 /dev/fd/* 的可能原因是什么?

我怀疑 meld 需要它们也是可写的。然而,它确实说Could not read file(注意“阅读”);再加上,这意味着它们对于 root 来说是可写的,因为 root 没有这样的错误。

~$ diff <(echo foo) <(echo bar)
1c1
< foo
---
> bar

~$ meld <(echo foo) <(echo bar)  # not working, see comment below
~$ sudo -s
~# meld <(echo foo) <(echo bar)  # works just fine

第一个返回Could not read file[Errno 2] No such file or directory: '/dev/fd/63'

您怀疑这种行为的原因是什么?

截屏

上面是非特权用户,下面是root。

截图,root

答案1

当 Meld 窗口已经打开时会发生这种情况。在这种情况下,再次运行meld会尝试使用现有的 Meld 进程;但该进程无法访问/dev/fd用于替换的文件......

似乎没有办法强迫 Meld 使用“新”流程,而忽略所有其他流程。

相关内容