권한이 없는 사용자로 실행할 때 meld가 /dev/fd/*에 액세스할 수 없는 가능한 이유는 무엇입니까?

권한이 없는 사용자로 실행할 때 meld가 /dev/fd/*에 액세스할 수 없는 가능한 이유는 무엇입니까?

나는 멜드가 쓰기도 가능해야 한다고 생각했습니다. 그러나 다음과 같이 말합니다 Could not read file("읽기"에 유의하세요). 게다가 루트에 대해서는 그러한 오류가 없었기 때문에 루트에 쓸 수 있다는 의미가 됩니다.

~$ 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'.

이런 행동의 이유가 무엇이라고 생각하시나요?

스크린샷

위는 권한이 없는 사용자, 아래는 루트입니다.

스크린샷, 루트

답변1

이는 Meld 창이 이미 열려 있는 경우에 발생합니다. 이 경우 meld다시 실행하면 기존 Meld 프로세스를 사용하려고 시도합니다. 하지만 해당 프로세스는 /dev/fd대체에 사용되는 파일에 액세스할 수 없습니다 ...

Meld가 다른 모든 프로세스를 무시하고 "새로운" 프로세스를 사용하도록 강제하는 옵션은 없는 것 같습니다.

관련 정보