Linux CentOS7 vim临时文件

news2024/11/23 22:38:08

在vim中,由于断网、停电、故意退出、不小心关闭终端等多种原因,正在编辑的文件没有保存,系统将会为文件保存一个交换文件,或称临时文件,或备份文件。

如果因某种原因产生了交换文件,每次打开文件时,都会提示用户作一定的选择。按提示,录入大写的单字母,就可以进入相应的状态。

交换文件是一种文件保护机制,有重要作用。有时会带来一定困惑,但恰当处理,很容易解决。本文作一初步介绍与讨论。

由于正确使用vim不会产生交换文件,没有意外情况出现,很难看到交换文件。为此,我们特意由强制断开xshell来创建交换文件。实际工作中,可能不会出现(一般新手使用vim不熟练,会多次产生。而操作熟练后,将很难产生了)。

一、创建交换文件

1.编辑文件

为了说明问题,我们在远程终端,以zhangsan用户登录,在/home/zhangsan目录下,用vim编辑一个文件swp_test.txt,录入部分内容后,保存。

列表查看文件信息:

2.创建一个交换文件

为了创建一个交换文件,我们可以这样操作:用vim打开文件,在最后一行添加一部分内容,不保存,断开终端。重新连接终端,切换到家目录,查看文件,就会发现一个交换文件。

a.重新打开文件

        vim swp_test.txt

b.修改文件

3.断开连接

我们不保存文件,直接断开xshell连接

4.重新连接

选择xshell文件,选择“重新连接”

5.查看文件

        ls -Alrt

6.打开文件

我们再次用vim打开文件swp_test.txt

        vim swp_test.txt

将出现交换文件提示,选择最后一行中任意一项(直接按大写字母),进行下一步操作:

        O  以只读方式打开:文件不允许编辑,不能保存(可以另存,但成为了另一个文件)

        E  直接编辑:文件以原来保存的内容显示,可以重新修改、编辑(交换文件仍存在)

        R  恢复:文件以交换文件保存的内容显示,可以重新修改、编辑(交换文件仍存在)

        D  删除交换文件:交换文件删除后不再存在

        Q  退出:查看此信息后,不作处理,退出vim编辑

        A  中止:与Q类似,退出vim

为了更多验证交换文件,我们选择Q,退出vim。

二、创建第二个交换文件

我们重新创建一个xshell连接,以root用户登录,切换到/home/zhangsan目录下,用vim再次编辑文件swp_test.txt。

1.登录后切换目录

登录成功后,我们先切换到zhangsan家目录。

2.查看文件信息

  执行命令ls  -al

可以看到交换文件的存在。

3.选择直接编辑

我们选择E,直接编辑原文件。

在显示的文件内容中,可以看到是原来的文件,没有第一次修改后的任何信息。

我们再次录入部分内容后,不保存

4.再次断开与连接xshell

        a.断开xshell

        b.重新连接xshell

        c.切换目录并查看

(1)通过ls命令查看交换文件

(2)通过vim  –r查看交换文件

由查看交换文件信息,可知:

a.交换文件后缀名有变化:从.swp到.swo,再有交换文件,将是.swn .swm..等等

b.每个交换文件信息中都有交换文件的保存时间,都有原文件名,不同的进程号等

5.以交换文件为基础编辑文件

可以执行命令:

        vim –r .swp_test.txt.swo

可以在.swp_test.txt.swo基础上编辑文件swp_test.txt

按enter后:

不作其他修改,保存退出。

再次查看文件信息:

        ls -Alrt

因为没有删除交换的操作,两个交换文件仍存在。

三、创建第三个交换文件

我们重新创建一个xshell连接,以lisi用户登录(lisi用户是root组的用户,相当于指定管理员),用vim再次编辑/home/zhangsan目录下文件swp_test.txt。

1.编辑文件

我们选择E,录入部分内容后,不保存。

2.断开与重连xshell

为了创建新的交换文件,我们断开xshell,并重新连接。

再次查看交换文件信息:

3.选择R

使用命令,再次编辑文件

        sudo vim /home/shangsaan/swp_test.txt

选择D,删除交换文件后,显示原文件内容。

保存后,退出。

再次查看交换文件信息:

当我们再次打开文件时,没有了交换文件提示,可以直接编辑文件了。

注意:此时仍然存在两个交换文件,我们仍然可以用某一个交换文件作为起点,修改原文件。

        sudo vim -r /home/zhangsan/.swp_test.txt.swn

效果如下:

对于没有用的、过时的交换文件,可以删除。命令简单,不作展示。

如果文件没有交换文件,用vim –r选项,将有如下提示,按任意键继续即退出vim编辑。

小结

本文讨论了交换文件产生的原因,处理方法及相关信息查询。有几点需要说明:1.交换文件是系统对文件的一种保护机制,并非多余。2.当同一文件,有多个交换文件时,交换文件后缀名有变化,可以推算出是第几个交换文件。3.可以在用vim编辑文件时,加上-r选项,有交换文件时会有说明,没有交换文件时,会退出vim。4.可以有多种方法删除交换文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1050242.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多线程总结(线程池 线程安全 常见锁)

本篇文章主要是对线程池进行详解。同时引出了单例模式的线程池,也对线程安全问题进行了解释。其中包含了智能指针、STL容器、饿汉模式的线程安全。也对常见的锁:悲观锁(Pessimistic Locking)、乐观锁(Optimistic Locki…

使用GDIView排查GDI对象泄漏导致的程序UI界面绘制异常问题

目录 1、问题说明 2、初步分析 3、查看任务管理器,并使用GDIView工具分析 4、GDIView可能对Win10兼容性不好,显示的GDI对象个数不太准确 5、采用历史版本比对法,确定初次出现问题的时间点,并查看前一天的代码修改记录 6、将…

visual studio下载安装

一、官网下载 地址:https://visualstudio.microsoft.com/zh-hans/ 点击免费visual studio 二、安装 运行下载好的exe文件,自定义安装目录 三、选择需要的组件安装 只需要选择标记组件,然后点击安装 等待安装完成就行 四、重启电脑 安装完之后…

windows系统关闭软件开机自启的常用两种方法

win10中安装软件时经常会默认开机自启动,本文主要介绍两种关闭软件开机自启动方法。 方法1 通过任务管理器设置 1.在任务管理器中禁用开机自启动:打开任务管理器,右键已启动的软件,选择禁用。 方法2 通过windows服务控制开机自启…

SpringBoot——常用注解

Spring Web MVC与Spring Bean注解 Controller/RestController Controller是Component注解的一个延伸,Spring 会自动扫描并配置被该注解标注的类。此注解用于标注Spring MVC的控制器。 Controller RequestMapping("/api/v1") public class UserApiContr…

ssm+vue的OA办公管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。

演示视频: ssmvue的OA办公管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构&am…

【Java 集合】准备知识

目录 初识集合框架 什么是集合框架 包装器 1. 基本数据类型和对应的包装器 2. 装箱和拆箱 3. 自动装箱和拆箱 4. Integer 存储机制 5. 包装器的作用 泛型 1. 什么是泛型 2. 引出泛型 2.1 泛型语法 3. 泛型类的使用 4. Java泛型实现的机制 -- 擦除机制 5. 泛型的…

PHP变量底层原理

前言 PHP是解释型的语言,它的执行顺序主要会经过以下几步: 1. 进行词法分析 2. 进行语法分析 3. 通过zend编译器,编译成opcode 4. zend虚拟机执行opcode 我们在写PHP代码的时候就知道,PHP是弱语言类型,而PHP底层又是由…

亚马逊无线充UL62368报告办理 无线充UL2738+UL2056标准UL认证办理亚马逊类目审核

什么是UL测试报告和UL认证有什么区别? 美国是一个对安全要求非常严格的国家,美国本土的所有电子产品生产企业早在很多年前就要求有相关安规检测。而随着亚马逊在全球商业的战略地位不断提高,境外的电子设备通过亚马逊不断涌入美国市场&#…

幂级数和幂级数的和函数有什么关系?

幂级数和幂级数的和函数有什么关系? 本文例子引用自:80_1幂级数运算,逐项积分、求导【小元老师】高等数学,考研数学 求幂级数 ∑ n 1 ∞ 1 n x n \sum\limits_{n1}^{\infty}\frac{1}{n}x^n n1∑∞​n1​xn 的和函数 &#xff…

What are the differences between lsof and netstat on linux?

参考:https://stackoverflow.com/questions/49381124/what-are-the-differences-between-lsof-and-netstat-on-linux https://www.cnblogs.com/pc-boke/articles/10012112.html LSOF: List of Open Files. It lists all the open files belonging to all active pr…

C语言实现——简易通讯录

前言:小伙伴们又见面啦!这几天通过我们对自定义数据类型的学习,我们已经掌握了如何同时对多种数据类型进行管理,那么今天这篇文章,我们就来干一件大事——实现简易的通讯录。 一.思路分析 先来想想通讯录有哪些功能&a…

Spring Boot:利用JPA进行数据库的查删

目录标题 DAO 、Service 、 Controller 层控制器文件示例代码-单个查找查找成功示例代码-列表查找查找成功示例代码-删除删除成功 DAO 、Service 、 Controller 层 DAO 层负责数据库访问,它封装了对数据库的访问操作,例如查询、插入、更新和删除等。 Q…

《向量数据库指南》——向量数据库Elasticsearch -> Milvus 2.x

Elasticsearch -> Milvus 2.x 1. 准备 ES 数据 要迁移 ES 数据,前提假设您已经拥有属于自己的 es Server(自建、ElasticCloud、阿里云 ES 等),向量数据存储在 dense_vector,以及其他字段在 index 中,index mapping 形式如: 2. 编译打包 首先下载迁移项目源码:https…

第P7周—咖啡豆识别(1)

数据集及wen件目录介绍: 数据集:工作台 - Heywhale.com 一、前期工作 1.1 数据详情 import torch import torch.nn as nn import torchvision.transforms as transforms import torchvision from torchvision import transforms, datasets import os,…

Ros2 学习02- ubuntu22.04 安装ros2

设置镜像源 sudo vim /etc/apt/sources.list#阿里源 deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ jamm…

小波变换学习笔记【1】

【声明】本博客为学习B站视频小波分解与重构所做笔记,供自己和大家查阅学习,想查看 up 原视频请移步 B 站,侵删。 1.1 小波变换的由来 傅里叶变换基本思想:将信号分解成一系列不同频率的连续正弦波的叠加。 其缺点是,…

数据结构 | 二叉树

基本形状 可参照 数据结构:树(Tree)【详解】_数据结构 树_UniqueUnit的博客-CSDN博客 二叉树的性质 三种顺序遍历

基于Java的演唱会网上订票系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

记录一次SQL注入src挖掘过程

记录一次SQL注入src挖掘过程,小白挖洞 先是使用谷歌语法找到一个可以注入的网站 谷歌语法: 公司inurl:php?id 然后该公司的URL为 URL:XXXXXXXXXX/xxx.php?id1 输入测试有无注入,有没有waf 发现有报错 使用sqlmap寻找注入点 python…