먼저 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
파일을 읽는 것만으로는 파일을 열어 읽을 때 트릭을 사용하는 데 아무런 이점이 없습니다.