Possíveis razões pelas quais o meld não pode acessar /dev/fd/* quando executado como usuário sem privilégios?

Possíveis razões pelas quais o meld não pode acessar /dev/fd/* quando executado como usuário sem privilégios?

Suspeitei que o meld precisava que eles também fossem graváveis. No entanto, diz Could not read file(observe "ler"); além disso, a implicação seria que eles são graváveis ​​para root, porque não houve tal erro para 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

O primeiro retorna Could not read filee [Errno 2] No such file or directory: '/dev/fd/63'.

Qual você suspeita ser o motivo desse comportamento?

Captura de tela

Usuário sem privilégios acima, root abaixo.

Captura de tela, raiz

Responder1

Isso acontece quando uma janela do Meld já está aberta. Nesse caso, executar meldnovamente tenta usar o processo Meld existente; mas esse processo não consegue acessar os /dev/fdarquivos que são usados ​​para a substituição...

Não parece haver uma opção para forçar o Meld a usar o “novo” processo, ignorando todos os outros.

informação relacionada