将文件的内容打印到标准输出的命令
-A, --show-all | 等于-vET |
-b, --number-nonblank | 对非空输出行编号 |
-e | 等于-vE |
-E, --show-ends | 在每行结束处显示"$" |
-n, --number | 对输出的所有行编号 |
-s, --squeeze-blank | 不输出多行空行 |
-t | 与-vT 等价 |
-T, --show-tabs | 将跳格字符显示为^I |
-v, --show-nonprinting | 识别特殊字符 |
比较文件的差异的命令
diff命令在最简单的情况下,比较给定的两个文件的不同。如果使用“-”代替“文件”参数,则要比较的内容将来自标准输入。diff命令是以逐行的方式,比较文本文件的异同处。如果该命令指定进行目录的比较,则将会比较该目录中具有相同文件名的文件,而不会对其子目录文件进行任何比较操作。
例如:创建两个目录file2和file4,分别创建一个目录file3和一个文件mary,两个file3中再创建不同的内容,两个mary中也写入不同的内容
[root@localhost ~]# ll file2
总用量 0
drwxr-xr-x. 2 root root 6 7月 20 11:26 file3
-rw-r--r--. 1 root root 0 7月 20 11:27 mary
[root@localhost ~]# ll file4
总用量 4
drwxr-xr-x. 3 root root 17 7月 20 11:31 file3
-rw-r--r--. 1 root root 12 7月 20 11:30 mary
[root@localhost ~]# ls file2/file3
[root@localhost ~]# ls file4/file3
app
[root@localhost ~]# cat file2/mary
hahaha
[root@localhost ~]# cat file4/mary
hello world
然后在用diff命令对比file2和file4,可以发现: 对于两个子目录file3名称进行了对比,并没有对比内容;而对于两个文件mary还对比了内容。
[root@localhost ~]# diff file2 file4
file2/file3 和 file4/file3 有共同的子目录
diff file2/mary file4/mary
1c1
< hahaha
---
> hello world
一般-y -W两个参数一起使用
-y或–side-by-side:以并列的方式显示文件的异同之处。
-W或–width:在使用-y参数时,指定栏宽。
[root@localhost ~]# diff file1 file3 -y -W 30
mylinux all mylinux all
| everyday
see you <
[root@localhost ~]# diff file1 file3 -y -W 50
mylinux all mylinux all
| everyday
see you <
一般centos新版本下载vim后会自带vimdiff命令
[root@localhost ~]# vimdiff file1 file3
过滤文本的命令。Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来,具体参数参考help。
一般常用到的参数:
参数 | 作用 |
---|---|
-n | 输出的同时打印行号 |
-i | 不区分大小写 |
-o | 只显示匹配到的内容 |
-v | 输出除匹配内容以外的内容 |
一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来; 二是用来创建新的空文件。
[root@localhost ~]# stat file1
文件:"file1"
大小:2523 块:8 IO 块:4096 普通文件
设备:fd00h/64768d Inode:817644 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2020-07-20 13:24:54.458906191 +0800
最近更改:2020-07-20 13:23:51.061858413 +0800
最近改动:2020-07-20 13:23:51.061858413 +0800
创建时间:-
[root@localhost ~]# touch file1
[root@localhost ~]# stat file1
文件:"file1"
大小:2523 块:8 IO 块:4096 普通文件
设备:fd00h/64768d Inode:817644 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2020-07-20 13:26:56.286971893 +0800
最近更改:2020-07-20 13:26:56.286971893 +0800
最近改动:2020-07-20 13:26:56.286971893 +0800
创建时间:-
参数 | 作用 |
---|---|
-a | 只修改文件的access(访问)时间 |
-c | 不创建不存在的文件 |
-d | 使用指定的日期时间,而非现在的时间 |
-r | 按指定文件的时间创建文件 |
file命令用来识别文件类型,也可用来辨别一些文件的编码格式。它是通过查看文件的头部信息来获取文件
类型,而不是像Windows通过扩展名来确定文件类型的。
[root@localhost ~]# file anaconda-ks.cfg
anaconda-ks.cfg: ASCII text
cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。
例:假如123不存在或者不是一个目录,都无法将多个文件或目录cp到123中。
[root@localhost ~]# cp file1 file3 123
cp: 目标"123" 不是目录
[root@localhost ~]# mkdir 123
[root@localhost ~]# cp file1 file3 123
[root@localhost ~]# cd 123
[root@localhost 123]# ls
file1 file3
参数 | 作用 |
---|---|
-r | 递归复制目录 |
-d | 复制链接文件 |
-p | 保留源文件或目录的属性(所有着、所属组、权限与时间(只能在root中执行) |
在指定的路径下查找指定文件的命令
find [-path……] -options [-print -exec -ok]
[root@localhost ~]# find /etc/ -name passwd
/etc/passwd
/etc/pam.d/passwd
[root@localhost ~]# find /etc/ -name passwd -print
/etc/passwd
/etc/pam.d/passwd
[root@localhost ~]# find /etc/ -name passwd -print0
/etc/passwd/etc/pam.d/passwd[root@localhost ~]#
[root@localhost ~]# find . -name file3 -exec stat {} \;
文件:"./file3"
大小:21 块:8 IO 块:4096 普通文件
设备:fd00h/64768d Inode:817643 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2020-07-20 11:54:42.601694824 +0800
最近更改:2020-07-20 11:54:30.550645950 +0800
最近改动:2020-07-20 11:54:30.550645950 +0800
创建时间:-
options常用的有下选项:
locate
第一步:安装locate
[root@localhost ~]# yum install mlocate-0.26-8.el7.x86_64
第二部:手动更新数据库
[root@localhost ~]# updatedb #手动更新数据库
工作特性:
查找速度快;模糊查找;非实时查找。
依赖于事先构建好的索引库
注意:索引构建过程需要遍历整个根文件系统,极消耗资源;
参数用法:
find与locate区别
find :查找真正的文件系统。
locate :locate自己的数据库。将文件系统定时的更新到自己的数据库中 。