find 命令
find 查找文件(文件夹)
find指令
-print (输出结果,默认)
-ls 类似于ls -lhi
根据名称查找一个文件
我记得,Linux系统中有一个文件叫redhat-release,我怎查找到它的位置。
[root@localhost ~]# find / -name "redhat-release"
/etc/redhat-release
参数
-name : 指定搜索的名称
-i : 忽略大小写
通配符
*:匹配所有(可以匹配空字符)
[] : 匹配中括号中的任意一个字符
[^] : 匹配除掉中括号中的内容之外的跟前面匹配的上的所有文件
! : 对整个搜索结果进行取反
[root@localhost ~]# find /root/ ! -name "abc[359]"
/root/
?:匹配任意一个字符(该字符不能为空)
根据文件大小查找
根据文件的体积查询出我们所需要的文件,find会自动四舍五入
参数
-a :并且(默认使用-a)
[root@localhost ~]# find /var/log -size +2k -size -10k
/var/log
-o : 或者
[root@localhost ~]# find /var/log -size -2k -o -size +10k
/var/log/tallylog
# b c (默认) w K M G
-size n (单位)
+n : 大于n个单位
-n : 小于n个单位
n : 等于n个单位
# 注:find查找同时打印出隐藏文件
# 注:n必须是整数,不能是小数
[root@localhost log]# find /root/ -size 8.8k
find: Invalid argument `8.8k' to -size
+n : 大于n个单位的文件
按时间进行查找
**-ctime: 文件变更时间(修改了位置 mv 包含创建时间)
atime : 访问时间(cat)
[root@localhost test]# rm -rf ./* && for i in 1 2 3 4 5 6 7 8 9;do date -s "2021-03-0\(i 11:30:30";touch 2021-03-0\)i.txt; done
Mon Mar 1 11:30:30 CST 2021
-mtime: 内容修改时间
# 正好3天以前创建的文件
[root@localhost test]# find /root/test/ -mtime +3
/root/test/
按照属性查找(-type)
格式
find 路径 -type 文件类型 指令
f(-) : 普通文件
d : 目录文件
l : 连接文件(快捷方式)
b : 设备文件
c : 字符设备文件
s : 套接字文件
p : 管道文件
[root@localhost dev]# find ./ -type b
./dm-1
./dm-0