2.23find(上)
2.24find(中)
2.25find(下)
2.26文件名后缀
一、find 查找文件
linux中有很多查找的命令,比如说: which、whereis、locate 。这些都不常用,用的最多是find命令。
顺便记录命令行几个常用快捷键:
ctrl + l :清屏
ctrl +d :退出终端,类似 exit logout命令
ctrl +d :命令行有字符时,ctrl+d是往后一个个删除字符
ctrl + u:删除光标前面的
ctrl +a: 光标移动最前面
ctrl+e:光标移动到最后面
find命令是用来查找文件。
用法:find 路径 -type 文件名
示例:
查找etc目录下的名字为"ssh_config"的文件
[root@wxy03 ~]# find /etc/ -name "ssh_config"/etc/ssh/ssh_config
不太记得文件名了,也可以模糊查询文件
[root@wxy03 ~]# find /etc/ -name "ssh*"/etc/ssh/etc/ssh/ssh_config/etc/ssh/ssh_host_ed25519_key.pub/etc/ssh/ssh_host_ecdsa_key.pub
也可以只查找目录,-type就是指定查找类型,d就是指目录的意思。同理如果需要查找其它类型的文件就可以-tyep 加上想要查找的文件类型就可以了,比如说:f 就是文件类型,s 是socket文件等等。
[root@wxy03 ~]# find /etc/ -type d -name "ssh*"/etc/ssh/etc/selinux/targeted/active/modules/100/ssh[root@wxy03 ~]#
find按修改时间进行查找:
linux的文件有三个时间,可以使用stat命令来查看一下:
[root@wxy03 home]# stat 3.txt File: ‘3.txt’ Size: 68 Blocks: 8 IO Block: 4096 regular fileDevice: fd01h/64769d Inode: 73732 Links: 4Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)Access: 2018-09-17 23:21:01.419307695 +0800Modify: 2018-09-17 23:21:01.419307695 +0800Change: 2018-09-17 23:27:37.947371616 +0800 Birth: -[root@wxy03 home]#
Access:是文件最后的访问时间
Modify:文件的最后一次修改时间
Change:文件状态最后一次修改时间。比如权限修改 、mv等。change状态会收到modify的影响。
find 可以根据这个三个时间进行查找,他们分别是 -atime -mtime -ctime
示例:
查找home目录下一天内修改过的文件,-mtime -1 这个-1就是一天内的意思,如果要查找一天前修改过的改成+1就可以了。
[root@wxy03 home]# find /home/ -type f -mtime -1/home/3.txt/home/2.txt/home/1.txt[root@wxy03 home]#
同理如果要查找一天以内查看过的文件把mtime改为atime,查找一天以内修改过权限或者移动过的文件mtime改为ctime即可。
以上三个时间只能以天为单位进行查找,find还有一个参数可以按分钟进行查找:
查找120分钟内修改过的文件,-mmIn 120就是120分钟内的,如果想要查找60分钟内的把120改成60即可
[root@wxy03 home]# find / -type f -mmin 120 /var/lib/rpm/__db.003/var/lib/rpm/__db.001/var/lib/rpm/__db.002/var/cache/yum/x86_64/7/timedhosts
find还支持or条件,加上-o参数,比如:查找一天以内修改或者文件名中包含“ssh”的:find /etc/ -type f -o -mtime -1 -o -name "ssh*"
find exec用法:
exec可以把find查到的内容当做后面命令的参数,如把查找到文件统一修改文件名:
[root@wxy03 home]# find /tmp/ -type f -name "*.txt"/tmp/3.txt/tmp/2.txt/tmp/1.txt[root@wxy03 home]# find /tmp/ -type f -name "*.txt" -exec mv {} {}.bak \;[root@wxy03 home]# find /tmp/ -type f -name "*.bak"/tmp/2.txt.bak/tmp/1.txt.bak/tmp/3.txt.bak
注意:使用exec 需要以 ";"结尾,并要使用"\"脱意
- 指定某个时间段进行查找
find . -newermt '2018-11-18 15:00' ! -newermt '2018-11-18 23:59'
find按文件大小进行查找:
find还可以根据文件大小进行查找,用法:find -size<文件大小>
示例:
查找10k以上的文件:
find /etc/ -type f -size +10k
查找10M以上的文件:find /etc/ -type f -size +10M
size的文件大小格式:
- b —— 块(512字节)
- c —— 字节
- —— 字(2字节)
- k —— 千字节
- M —— 兆字节
- G —— 吉字节
二、文件后缀
linux系统中文件后缀其实是没什么用的,但是为了便于区分,我们习惯在定义一个文件类型的时加一个后缀名,这可以快速分辨文件类型。
常用的文件后缀有:.sh :脚本文件
.txt:文本文件
.gz /.tar :压缩文件
.cnf:配置文件