3.3 文件操作命令

3.3.1 stat命令

  ●命令名称:stat。

  ●英文原意:display file or file system status。

  ●所在路径:/usr/bin/stat。

  ●执行权限:所有用户。

  ●功能描述:显示文件或文件系统的详细信息。

  (1)命令格式

[root@localhost ~]# stat [选项] 文件名或目录名
选项:
-f:查看文件所在的文件系统信息(而不是文件的信息)

  (2)常见用法

  ①查看文件的详细信息

[root@localhost ~]# stat anaconda-ks.cfg
File: ‘anaconda-ks.cfg’
Size: 1649 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 16797762 Links: 1
Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:admin_home_t:s0
Access: 2022-11-27 17:07:14.882951678 -0500 # 访问时间
Modify: 2022-11-27 17:06:24.360006324 -0500 # 数据修改时间
Change: 2022-11-27 17:06:24.360006324 -0500 # 状态修改时间
Birth: -

  stat可以查看文件详细信息,而且展示了文件三个时间:访问时间、数据修改时间、状态修改时间。

  ②查看文件系统信息

[root@localhost ~]# stat -f anaconda-ks.cfg
File: "anaconda-ks.cfg"
ID: fd0000000000 Namelen: 255 Type: xfs
Block size: 4096 Fundamental block size: 4096
Blocks: Total: 3273216 Free: 1989643 Available: 1989643
Inodes: Total: 6551552 Free: 6417040

  (3)三种时间的含义

  Linux中的每个文件都有三个时间,分别是访问时间(Access Time)、数据修改时间(Modify Time)和状态修改时间(Change Time)。

  注意:在Linux中,文件没有创建时间。

  ①先查看系统当前时间:

[root@localhost ~]# date
Sat Dec 10 20:59:02 EST 2022

  ②再创建一个mylog.log文件,并查看该文件的三种时间:

[root@localhost ~]# touch mylog.log
[root@localhost ~]# stat mylog.log
省略部分内容……
Access: 2022-12-10 20:59:39.691757029 -0500
Modify: 2022-12-10 20:59:39.691757029 -0500
Change: 2022-12-10 20:59:39.691757029 -0500
Birth: -

  可以看到,touch创建出的文件三个时间都为系统当前时间。

  ③如果用cat命令读取一下这个文件,就会发现文件的访问时间(Access Time)变成了cat命令的执行时间,如下:

[root@localhost ~]# cat mylog.log
[root@localhost ~]# stat mylog.log
省略部分内容……
Access: 2022-12-10 21:03:35.151936060 -0500
Modify: 2022-12-10 20:59:39.691757029 -0500
Change: 2022-12-10 20:59:39.691757029 -0500
Birth: -

  ④如果用echo命令向文件中写入数据,那么文件的数据修改时间(Modify Time)就会发生改变。文件数据改变了,系统会认为文件的状态改变了,所以状态修改时间(Change Time)也会随之改变,如下:

[root@localhost ~]# echo [2022-12-10 20:59:39]创建文件 > mylog.log
[root@localhost ~]# stat mylog.log
省略部分内容……
Access: 2022-12-10 21:03:35.151936060 -0500
Modify: 2022-12-10 21:12:16.149970237 -0500
Change: 2022-12-10 21:12:16.149970237 -0500
Birth: -

  ⑤如果只修改文件的状态(比如改变文件的所有者),而不修改文件的数据,则只会更改状态修改时间(Change Time),如下:

[root@localhost ~]# chown LaytonWang mylog.log
[root@localhost ~]# stat mylog.log
省略部分内容……
Access: 2022-12-10 21:03:35.151936060 -0500
Modify: 2022-12-10 21:12:16.149970237 -0500
Change: 2022-12-10 21:19:23.698742725 -0500
Birth: -

  ⑥而如果用touch命令再次触摸这个文件,则这个文件的三个时间都会改变,如下:

[root@localhost ~]# touch mylog.log
[root@localhost ~]# stat mylog.log
省略部分内容……
Access: 2022-12-10 21:21:08.859162533 -0500
Modify: 2022-12-10 21:21:08.859162533 -0500
Change: 2022-12-10 21:21:08.859162533 -0500
Birth: -

3.3.2 touch命令

  ●命令名称:touch。

  ●英文原意:change file timestamps。

  ●所在路径:/usr/bin/touch。

  ●执行权限:所有用户。

  ●功能描述:修改文件的时间戳。

  (1)命令格式

[root@localhost ~]# touch [选项] 文件名或目录名

选项:

-a:只修改文件的访问时间(Access Time)

-c:如果文件不存在,则不建立新文件

-d:把文件的时间改为指定的时间

-m:只修改文件的数据修改时间(Modify Time)

  (2)常见用法

[root@localhost ~]# touch mylog.log

  touch的意思是触摸,如果文件不存在,则会创建空文件;如果文件已经存在,则会修改文件的时间戳,文件的三个时间(访问时间、数据修改时间、状态修改时间)都会被修改。

3.3.3 cat命令

  ●命令名称:cat。

  ●英文原意:concatenate files and print on the standard output。

  ●所在路径:/usr/bin/cat。

  ●执行权限:所有用户。

  ●功能描述:合并文件并打印输出到标准输出。

  (1)命令格式

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

  (2)常见用法

  ①直接查看文件的内容:

[root@localhost ~]# cat anaconda-ks.cfg
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
省略部分内容……

  ②使用“-n”选项,则会显示行号:

[root@localhost ~]# cat -n anaconda-ks.cfg
1 #version=DEVEL
2 # System authorization information
3 auth --enableshadow --passalgo=sha512
4 # Use CDROM installation media
省略部分内容……

  ③使用“-A”选项,则相当于使用了“-vET”选项,可以查看文本中的所有隐藏符号,包括回车符($)、Tab键(^I)等:

[root@localhost ~]# cat -A anaconda-ks.cfg
#version=DEVEL$
# System authorization information$
auth --enableshadow --passalgo=sha512$
# Use CDROM installation media$
省略部分内容……

  cat命令用于查看文件内容,不论文件内容有多少,都会一次性显示。如果文件非常大,那么文件开头的内容就看不到了。不过Linux可以使用“pgup/pgdn”上下翻页,但是这种翻页是有极限的,如果文件足够长,那么还是无法看全文件的内容。所以cat命令适合查看不太大的文件。

3.3.4 more命令

  ●命令名称:more。

  ●英文原意:file perusal filter for crt viewing。

  ●所在路径:/usr/bin/more。

  ●执行权限:所有用户。

  ●功能描述:分屏显示文件内容。

  (1)命令格式

[root@localhost ~]# more [选项] 文件名

  more命令一般不用选项,命令会打开一个交互界面,可以识别一些交互命令。

  常用的交互命令如下:

  ●空格键:向下翻页。

  ●b:向上翻页。

  ●回车键:向下滚动一行。

  ●/字符串:搜索指定的字符串。

  ●q:退出。

  (2)常见用法

[root@localhost ~]# more anaconda-ks.cfg
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
省略部分内容……
--More--(40%)

  more命令可以分屏显示文件内容,如果文件过大,可以使用more命令替代cat命令。

3.3.5 less命令

  ●命令名称:less。

  ●英文原意:opposite of more。

  ●所在路径:/usr/bin/less。

  ●执行权限:所有用户。

  ●功能描述:分行显示文件内容。

  (1)命令格式

[root@localhost ~]# less 文件名

  less命令可以使用“方向键”上下翻行;使用“pgup/pgdn”上下翻页。

  (2)常见用法

[root@localhost ~]# less anaconda-ks.cfg
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
省略部分内容……
:

3.3.6 head命令

  ●命令名称:head。

  ●英文原意:output the first part of files。

  ●所在路径:/usr/bin/head。

  ●执行权限:所有用户。

  ●功能描述:显示文件开头的内容。

  (1)命令格式

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

  (2)常见用法

  ①默认显示文件开头10行的内容:

[root@localhost ~]# head anaconda-ks.cfg
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
cdrom
# Use graphical install
graphical
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda

  ②显示文件开头指定行数的内容:

[root@localhost ~]# head -n 5 anaconda-ks.cfg
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
cdrom

3.3.7 tail命令

  ●命令名称:tail。

  ●英文原意:output the last part of files。

  ●所在路径:/usr/bin/tail。

  ●执行权限:所有用户。

  ●功能描述:显示文件结尾的内容。

  (1)命令格式

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

  (2)常见用法

  ①默认显示文件结尾10行的内容:

[root@localhost ~]# tail anaconda-ks.cfg

%addon com_redhat_kdump --enable --reserve-mb='auto'

%end

%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end

  ②显示文件结尾指定行数的内容:

[root@localhost ~]# tail -n 5 anaconda-ks.cfg
%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end

  ③监听文件的新增内容:-f选项

[root@localhost ~]# tail -f -n 5 anaconda-ks.cfg
%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end

  使用-f选项,光标不会退出命令,而会一直监听在文件的结尾处,等待显示新增内容。这时如果向文件中追加一些数据(需开启一个新终端),会实时显示在文件尾。

小结:

  本节介绍文件操作相关命令。stat查看文件详细信息,包括文件的三个时间;touch是触摸一个文件,如果文件不存在,则会创建空文件,否则会修改文件的三个时间戳;cat适合查看不太大的文件;对于大文件,more可以分屏显示文件内容,less可以分行显示文件内容;head显示文件开头的内容;tail显示文件结尾的内容,其-f选项可以实时监听文件尾的新增内容。

Linux笔记03: Linux常用命令_3.3文件操作命令的更多相关文章

  1. Linux笔记:vi常用命令

    vi编辑器是所有Unix及Linux系统下标准的编辑器,在很多时候我们都需要使用vi修改服务端配置,vi其实非常强大,只要命令使用熟练的情况下,编辑速度并不亚于现在的图形化编辑器,这里简单地介绍一下它 ...

  2. LINUX笔记之二常用命令(文件处理命令)

    一.概述 1. “.”开头的文件是隐藏文件,大小写敏感是因为用C语言编写 2. DOS中 cd..可回到父目录 在LINUX中要用cd ..(用空格) 3. 4.LINUX命令有两种:仅root可执行 ...

  3. LINUX笔记之二常用命令(权限管理命令)

    1. +增加权限:-去掉权限:=直接赋权. r(4)w(2)x(1) 重点掌握:通过数字授权,例如rxwr-xr--是754 例题:用root用户创建目录并在此目录新建文件,之后更改新文件的权限为77 ...

  4. Linux基础 - 系统优化及常用命令

    目录 Linux基础系统优化及常用命令 Linux基础系统优化 网卡配置文件详解 ifup,ifdown命令 ifconfig命令 ifup,ifdown命令 ip命令 用户管理与文件权限篇 创建普通 ...

  5. Linux基础系统优化及常用命令

    # Linux基础系统优化及常用命令 [TOC] ## Linux基础系统优化 Linux的网络功能相当强悍,一时之间我们无法了解所有的网络命令,在配置服务器基础环境时,先了解下网络参数设定命令. - ...

  6. Linux系统管理和维护常用命令

    Linux系统管理和维护常用命令 ls 命令 功能说明 ls 命令显示指定工作目录下的内容,列出工作目录所包含的文件及子目录. 语法结构: ls [选项] [路径或文件] ls 选项及说明 -a 显示 ...

  7. Linux文件管理和编辑常用命令

    Linux文件管理和编辑常用命令 mkdir 命令 功能说明 mkdir 命令用于创建一个目录,mkdir是make directory的缩写 格式: mkdir [选项] 目录名 mkdir 命令的 ...

  8. Linux课程---4、Linux目录结构及常用命令(目录结构)

    Linux课程---4.Linux目录结构及常用命令(目录结构) 一.总结 一句话总结: 家目录:./root:root用户的家目录 能执行的程序:./bin:所有用户都能执行的程序:./sbin:只 ...

  9. 《学渣Linux笔记》——更改ls命令的输出颜色和命令提示符颜色(二)

    <学渣Linux笔记>--更改ls命令的输出颜色和命令提示符颜色(二) II.更改命令提示符颜色 命令提示符的显示格式是由变量PS1决定的,首先我们查找GNU官方手册,发现如下内容(不是我 ...

  10. [转帖]「日常小记」linux中强大且常用命令:find、grep

    「日常小记」linux中强大且常用命令:find.grep https://zhuanlan.zhihu.com/p/74379265 在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍 ...

随机推荐

  1. arthas的安装及使用

    arthas的安装及使用 官方文档 安装 #1.下载 https://arthas.aliyun.com/download/latest_version?mirror=aliyun #2.将下载文件上 ...

  2. MAUI+Blazor混合应用开发示例

    前言 笔者之前在公司搭建过一套生产管理系统,该系统要求能和硬件进行串口通信,同时又要提供后台信息查询.笔者给出的解决方案就是:MAUI + Blazor,这样只需要提供一套UI,就能满足桌面端.移动端 ...

  3. Vue【原创】可拖动列表 darg-list

    可拖动排序的列表 drag-list,这个比较简单易懂,拿例子直接运行看效果就好了. 组件代码: 1 <template> 2 <ul class="list" ...

  4. shopee根据ID取商品详情 API

    ​ item_get-根据ID取商品详情  注册开通 shopee.item_get 公共参数 名称 类型 必须 描述 key String 是 调用key(必须以GET方式拼接在URL中) secr ...

  5. API接口技术的使用可以增加软件开发和运行的灵活性,降低软件运行和维护的成本

    随着科技的发展和互联网的普及,越来越多的公司和企业把业务拓展到互联网上,这就需要用到API接口技术.API(Application Programming Interface,应用程序接口)是指不同软 ...

  6. 命令行安装ipa包

    我们可以通过ssh连接我们的iphone,来使用命令行安装ipa包 itunnel_mux.exe --lport 9993 --iport 22 itunnel_mux.exe --lport 99 ...

  7. 【算法】湖心岛上的数学梦--用c#实现一元多次方程的展开式

    每天清晨,当第一缕阳光洒在湖面上,一个身影便会出现在湖心小岛上.她坐在一块大石头上,周围被茂盛的植物环绕,安静地沉浸在数学的世界中. 这个姑娘叫小悦,她的故事在这个美丽的湖心小岛上展开.每天早晨,她都 ...

  8. 基于Protege的知识建模实战

    一.Protege简介.用途和特点 1.Protege简介 Protege是斯坦福大学医学院生物信息研究中心基于Java开发的本体编辑和本体开发工具,也是基于知识的编辑器,属于开放源代码软件.这个软件 ...

  9. ionic app调试问题

    以下是一些ionic app在模拟器中的调试问题: 1. CORS问题 官方原文以及解释:Handling CORS issues in Ionic 国内翻译:彻底解决Ionic项目中的跨域问题 2. ...

  10. 「atcoder - ABC215G」Colorful Candies 2

    link. 称题目中的 \(c_i\) 为 \(a_i\),令 \(c_i\) 为第 \(i\) 种颜色的出现次数,令 \(C\) 为颜色总数.固定 \(k\),令 \(t_i=1\),如果颜色 \( ...