Linux基础----文件操作命令

一、touch

  • 对应英文:change file timestamps
  • 所在路径:/bin/touch
  • 执行权限:所有用户
  • 功能:修改文件的时间戳

1.命令格式

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

Linux的每个文件有三个时间:

  • Access Time(访问时间)
  • Modify Time(数据修改时间)
  • Change Time(状态修改时间)
    注意:在linux中文件没有创建时间

2.常见用法

2.1 touch XIXI
建立名为XIXI的空文件,如果文件不存在,则会建立文件
在这里插入图片描述名为XIXI的文件已经存在后后,再次输入命令也不会报错,只会修改文件的访问时间

二、stat

  • 对应英文:display file or file system status
  • 所在路径:/user/bin/stat
  • 执行权限:所有用户
  • 功能:显示文件或系统的详细信息(eg:三个时间)

1.命令格式

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

2.常见用法

2.1 stat[选项] 文件名或目录名
在这里插入图片描述查看文件的详细信息

2.2 stat -f
在这里插入图片描述查看文件所在文件系统的信息

2.3 三种时间的含义

(1) 查看系统当前时间

在这里插入图片描述

(2) 查看XIXI文件的三种时间:
在这里插入图片描述可以看到,这两个时间是有差别的,这些时间都是最后一次修改时间,而不是当前时间

(3) 用cat命令读取XIXI文件
在这里插入图片描述发现文件的访问时间变成了cat命令的执行时间,且只有访问时间变成了cat命令的执行时间,其他两个时间没有变

(4) 用echo命令向文件写入数据
在这里插入图片描述发现文件的数据修改时间,状态修改时间改变为了echo命令的执行时间,访问时间还是上次修改时间(用echo命令向文件中写入点数据,那么文件的数据修改时间会改变,文件数据改变了,系统会认为文件的状态也会改变,状态改变时间也会随之改变)

(5) 用chown命令修改文件的状态
在这里插入图片描述
只修改文件的状态(比如改变文件的所有者),而不修改文件的数据,则只会更改状态修改时间,状态修改时间改为chown命令的执行时间

(6) 用touch命令再次触摸这个文件
在这里插入图片描述三个时间都变为touch命令的执行时间

三、cat

  • 对应英文:concatenate files and print on the standard output
  • 所在路径:/bin/cat
  • 执行权限:所有用户
  • 功能:合并文件并打印输出到标准输出

1.命令格式

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

2.常见用法

(1) cat[选项] 文件名
在这里插入图片描述查看文件内容

(2) cat -n
在这里插入图片描述显示行列号

(3) cat -A
在这里插入图片描述查看文本中的所有隐藏符号

四、more

  • 对应英文:file perusal filter for crt viewin
  • 所在路径:/bin/more
  • 执行权限:所有用户
  • 功能:分屏显示文件内容

1.命令格式

more命令会打开一个交互界面,可以识别一些交互命令。 常用的交互命令如下:

空格键:向下翻页
b:向上翻页
回车键:向下滚动一行
/字符串:搜索指定的字符串
q:退出

文件过大,cat命令会省略,这时more命令的作用更加明显

五、less

  • 对应英文:opposite of more
  • 所在路径:/usr/bin/less
  • 执行权限:所有用户
  • 功能:分行显示文件内容
    less命令可以使用上、下箭头,用于分行查看文件内容

六、head

  • 对应英文:output the first part of files
  • 所在路径:/usr/bin/head
  • 执行权限:所有用户
  • 功能:显示文件开头的内容

1.命令格式

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

2.常见用法

(1) head[文件名]
在这里插入图片描述head命令默认显示文件的开头10行内容(此处我的文件只有6行)

(2) head -n
在这里插入图片描述这里显示文件开头的2行内容,也可以直接写“-行数”,eg:
在这里插入图片描述

七、tail

  • 对应英文:output the last part of files
  • 所在路径:/usr/bin/tail
  • 执行权限:所有用户
  • 功能:显示文件结尾的内容

1.命令格式

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

2 .常见用法

2.1 tail -n
在这里插入图片描述2.2 tail -f
在这里插入图片描述tail -f命令用来监听文件的新增内容,可以看到显示完命令后,光标不会退出命令,而会一直监听在文件的结尾处,等待显示新增内容,开启一个新终端,向文件中追加一些数据:
在这里插入图片描述此时打开原始终端会看到如下信息:
在这里插入图片描述在文件的结尾处监听到了新增数据

八、ln

  • 对应英文:make links between file
  • 所在路径:bin/ln
  • 执行权限:所有用户
  • 功能:在文件之间建立链接

1.基本命令

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

2.常见用法

2.1 创建硬链接文件
2.2 创建软链接文件
在这里插入图片描述
2.3 硬链接的特点:

  • 不论是修改源文件(bb),还是修改硬链接文件(bb-hard文件),另一个文件中的数据都会发生改变
  • 不论是删除源文件,还是删除硬链接文件,只要有一个文件存在,这个文件都可以被访问
  • 硬链接不会建立新的inode信息,也不会更改inode的总数
  • 硬链接不能跨文件系统(分区)建立,因为在不同的文件系统中,inode号是重新计算的
  • 硬链接不能链接目录

2.4 软链接的特点:

  • 软链接的源文件必须写绝对路径
  • 不论是修改源文件(bb),还是修改硬链接文件(bb-soft文件),另一个文件中的数据都会发生改变
  • 删除软链接文件,源文件不受影响。从而删除源文件,软链接文件将找不到实际的数据,从而显示文件不存在
  • 软链接会建立自己的inode信息和block,只是在block中不存储实际文件数据,而存储的是源文件的文件名及inode号
  • 软链接可以链接,目录
  • 软链接可以跨分区

版权声明:本文为weixin_58546893原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。