十大软件app排行榜下载免费,重庆seo标准,龙岗建设企业网站,马鞍山做网站公司排名用 vi/vim 命令打开文件时#xff08;即使未修改#xff09;#xff0c;会在源文件的同一目录下#xff08;而不是执行命令的目录#xff09;#xff0c;创建一个名为 .filename.swp 的交换文件。 例#xff1a;先用 vim f1 打开编辑窗口#xff0c;然后在另一个终端查… 用 vi/vim 命令打开文件时即使未修改会在源文件的同一目录下而不是执行命令的目录创建一个名为 .filename.swp 的交换文件。 例先用 vim f1 打开编辑窗口然后在另一个终端查看文件列表可以看到 swp 文件# ls -alh
-rw-r--r-- 1 root root 6 Nov 12 12:25 f1
-rw-r--r-- 1 root root 12K Nov 12 12:25 .f1.swp交换文件记录了源文件的原始内容、用户每次修改的增量内容从而允许用户撤销操作、重做操作。交换文件会比源文件的体积更大一些。退出 vi/vim 时会自动删除交换文件。 执行 :w 保存文件时即使未修改vi/vim 会将当前内容保存到源文件。根据配置参数 backupcopy 取值的不同有几种保存方式 backupcopyyes 原理根据交换文件得到文件的修改结果保存为一个名为 filename~ 的备份文件。然后拷贝备份文件的内容覆盖式写入源文件。最后删掉备份文件。优点源文件的 inode 不变文件属性不变。缺点如果文件体积大则拷贝需要一定耗时。如果同时有其它程序在修改源文件则可能出错。 backupcopyno 原理先创建一个备份文件并将它的文件属性改成跟源文件一致。然后删除源文件将备份文件重命名为源文件。优点几乎没有耗时。缺点 源文件被删了创建新文件inode 变化。新文件的文件属性可能不一致比如当前用户无权修改某个属性。如果源文件是一个软链接则新文件会是一个普通文件。 backupcopyauto 原理自动判断。优先采用 no 方式如果遇到以下情况则采用 yes 方式 源文件是软链接。源文件的文件属性不能全部复制到新文件。默认配置了 backupskip/tmp/* 表示修改该路径下的文件时不会创建备份文件。 Unix 系统的 vi/vim 默认采用 yes 方式而大部分 Linux 发行版的 vi/vim 采用 auto 方式。参考文档https://vimdoc.sourceforge.net/htmldoc/options.html#‘backupcopy’ 执行 :set xxx 可临时修改 vim 的配置参数也可以将配置参数永久保存到 /etc/vimrc 或 ~/.vimrc 文件。 用 vi/vim 打开一个文件时可能遇到这种报错 Swap file .f1.swp already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort:该报错表示该文件已存在交换文件可能是因为 此时有其他用户正在用 vi/vim 打开该文件而一个文件同时只允许被一个 vim 进程修改。之前某个用户用 vi/vim 打开了该文件但 vi/vim 进程异常退出没有自动删除交换文件。此时可执行以下命令vim -r .filename.swp # 恢复到文件的最后修改状态
:wq # 保存文件
rm -f .filename.swp # 删除交换文件