文件操作命令


计算机对数据的基本操作大多数可以归纳为增删改查,文件操作也不例外。

touch 命令

项目内容
命令名称touch
英文原意change file timestamps
所在路径/bin/touch
执行权限所有用户
作用修改文件的时间戳

命令格式

touch [选项]	 文件名或目录名
选项:
	-a:		只修改文件的访问时间(Access Time)
	-c:		如果文件不存在,则不建立新文件
	-d:		把文件的时间改为指定时间
	-m:		只修改文件的数据修改时间(Modify Time)

Linux中的每个文件都有三个时间,分别是访问时间(Access Time)、数据修改时间(Modify Time)和状态修改时间(Change Time)。这三个时间可以通过 stat 命令查看。touch命令只能手工指定是只修改访问时间或者数据修改时间,不能指定只修改状态时间。因为前两者的改变都会影响后者。
注意,并没有文件创建时间!

  • 三种时间的含义
    读取文件内容 ------> 改变Acess Time
    写文件内容 -------> 改变Modify Time and Change Time
    只修改文件状态 -------> 改变Change Time

常用用法

  • 创建空文件
    在这里插入图片描述
  • 文件存在也不会报错,只是三个时间都会变为touch命令执行的时间
    在这里插入图片描述

stat命令

项目内容
命令名称stat
英文原意display file or file system status
所在路径/usr/bin/stat
执行权限所有用户
作用显示文件或文件系统的详细信息

命令格式

stat [选项] 文件名或目录名
选项:
	-f:		查看文件所在的文件系统的信息,而不是查看文件的信息

常用用法

  • 查看文件的详细信息
    在这里插入图片描述
  • 查看文件系统时间
    在这里插入图片描述

cat命令

项目内容
命令名称cat
英文原意concatenate files and print on the standard output
所在路径/bin/cat
执行权限所有用户
作用合并文件并打印输出到标准输出

命令格式

cat [选项] 文件名
选项:
	-A:		相当于-vET选项的集合,用于列出所有的隐藏符号
	-E:		列出每行结尾的回车符$
	-n:		显示行号
	-T:		把Tab键用^T显示出来
	-v:		列出特殊字符

常用用法

cat命令会将文件的所有内容一次性显示出来。
cat不适合查看太大的文件。

  • 查看文件内容
    在这里插入图片描述
  • 加选项
    在这里插入图片描述
  • 将标准输入写入文件
    在这里插入图片描述

more命令

项目内容
命令名称more
英文原意file perusal filter for crt viewin
所在路径/bin/more
执行权限所有用户
作用分屏显示文件内容

命令格式

more 文件名

文件过大,cat命令会有心无力,这是more命令的作用更加明显。
more命令比较简单,一般不用什么选项,命令会打开一个交互界面,可以识别一些命令。常用的交互命令如下:

  • space:向下翻页
  • b:向上翻页
  • Enter:向下滚动一行
  • /字符串:搜索指定的字符串
  • q:退出

常用用法

  • 分屏显示
    在这里插入图片描述

less命令

项目内容
命令名称less
英文原意opposite of more
所在路径/usr/bin/less
执行权限所有用户
作用分行显示文件内容

命令格式

less 文件名

可以使用more的交互命令,也可以使用上下箭头。

常用用法

  • 与more类似

head命令

项目内容
命令名称head
英文原意output the first part of files
所在路径/usr/bin/head
执行权限所有用户
作用显示文件开头内容

命令格式

head [选项] 文件名
选项:
	-n 行数:	从文件头开始,显示指定行数
	-v:			显示文件名

常用用法

  • head默认显示文件开头的10行内容
    在这里插入图片描述
  • 使用-n
    在这里插入图片描述

tail命令

项目内容
命令名称tail
英文原意output the last part of files
所在路径/usr/bin/tail
执行权限所有用户
作用显示文件结尾内容

命令格式

tail [选项] 文件名
选项:
	-n 行数:	从文件结尾开始,显示指定行数
	-f:			监听文件的新增内容

常用用法

  • 不加选项与-n选项与head类似
  • 监听文件新增内容
    **在这里插入图片描述**

ln命令

项目内容
命令名称ln
英文原意make links between file
所在路径/bin/ln
执行权限所有用户
作用在文件之间建立链接

命令格式

ln [选项] 源文件 目标文件
选项:
	-s:		建立软链接文件。如果不加-s则建立硬链接文件
	-f:		强制。如果目标文件已经存在,则删除目标文件后再建立链接文件

若想理解此命令的用法,需先了解Linux文件系统是如何工作的。我们以现在主流的ext4为例,加以说明。

  • ext4文件系统
    ext4会把分区主要分为两个部分(暂时不提超级快):一小部分用于保存inode信息;剩余的大部分用于保存block信息。
    inode默认大小128Byte,用来记录文件的权限、文件的所有者和属组、文件大小、文件时间戳、文件的数据真正保存的block编号。
    block的大小可以使1KB、2KB、4KB,默认4KB。block用于实际的数据存储,如果一个block放不下数据,可以占用多个block。这些block可能连续,也可能分散。
  • 注意,软链接文件的源文件必须写成绝对路径,而不能写成相对路径(硬链接没有这样的要求);否则软链接会报错。

常用用法

  • 硬链接
    先建立一个硬链接:
    在这里插入图片描述
    观察源文件和链接文件:
    在这里插入图片描述
    我们发现,两者几乎所有信息都相同,甚至inode号都相同,其原理如下:
    在inode信息中,是不会记录文件名称的,而是把文件名称记录在上级目录的block中。也就是说,目录block中记录的是这个目录下所有的一级子文件和子目录的文件名和inode的对应;而文件的block中记录的才是文件的实际数据。当我们查找一个文件,比如/home/shz1/hello.c,需要经历如下步骤:
    a. 首先找到根目录的inode(根目录的inode是已知的,是2),然后判断用户是否有权限访问根目录的block。
    b. 如果有权限,则可以在根目录的block中找到/home的文件名以及对应的inode。
    c. 通过/home的inode号,找到/home的inode信息,接着判断用户是否有权限访问/home的block。

    最终找到访问到/home/shz1/hello.c的block,这样就完成了该文件的读取与访问。
    显然,对于硬链接目标文件和源文件,实际上指的是同一个inode和block。
    硬链接的限制比较多,不能跨文件系统,也不能链接目录,而且源文件和硬链接文件除了inode号是一样,没有其他明显特征。这些特征使得硬链接并不常用。
  • 软链接
    软链接也叫符号链接,相比硬链接,软链接常用很多,其实就相当于windows的快捷方式。再次注意,软链接源文件必须用绝对路径!否则报错。
    在这里插入图片描述
    软链接标志明显,首先,权限为中 “l” 表示这是一个软连接文件;其次,在文件中通过 “->” 显示出源文件的完整名字。
    软链接并没有太多限制,可以跨文件系统,也可以链接目录。
    软链接block保存的并非文件内容,而是链接文件的inode号,通过该inode,读取inode信息,读取源文件block,读取文件内容。
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值