vim이 Fuser에 표시되지 않음

vim이 Fuser에 표시되지 않음

먼저 Vim을 사용하여 /tmp/A와 같은 파일을 편집하세요.

vim 프로세스가 /tmp/A에 액세스하는 유일한 프로세스라고 가정하고 "ctrl+z"를 사용하여 프로세스를 일시 중지하고 실행합니다.

fuser /tmp/A

그러면 출력에 아무 것도 표시되지 않습니다.

그러나 "less"가 포함된 파일을 열면 퓨전 출력에서 ​​less라는 pid를 볼 수 있습니다.

이 이상한 동작을 일으키는 vim에 특별한 것이 있습니까?

답변1

예, vim은 파일을 저장해야 할 때까지 파일을 열지 않습니다. 대신 vim은 임시 숨겨진 스왑 파일을 사용하여 점진적으로 변경 사항을 저장합니다. 파일( )을 저장한 :w후 원본 파일을 작성합니다.

다음을 사용하여 직접 확인할 수 있습니다 lsof.

$ lsof -n -p `pidof vim`
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
[...]
vim     9695 gert    4u   REG  252,1    12288 410388 /tmp/.a.swp
[...]

이것은 일반적인 행동입니다편집하다. less파일을 읽는 것만으로는 파일을 열어 읽을 때 트릭을 사용하는 데 아무런 이점이 없습니다.

관련 정보