まず、Vimを使用して/ tmp / Aなどのファイルを編集します。
vimプロセスが/ tmp / Aにアクセスする唯一のプロセスであると仮定し、「ctrl + z」を使用してプロセスを一時停止して実行します。
fuser /tmp/A
これにより、出力に何も表示されません。
しかし、「less」を含むファイルを開くと、Fusion出力で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
ファイルを読むだけでは、ファイルを開いて読み取るときにトリックを使用するという利点はありません。