find
名称
find - 在目录树中搜索文件
使用
-name 正则表达式
基于文件名搜索(文件前的目录会被忽略),正则与shell的正则一样。因为文件前的目录会被忽略,所以查找的文件名中永远不要包括’/’,因此’-name a/b’查找不到任何东西(你可能需要使用**-path**)。
查找当前目录以及子目录下以zip结尾的文件
[jianglei@localhost ~]$ find . -name "*.zip"
./rocketmq-all-4.2.0-bin-release.zip
查找当前目录以及子目录下以sh结尾的文件
[jianglei@localhost ~]$ find . -name "*.sh"
./rocketmq/benchmark/producer.sh
./rocketmq/benchmark/tproducer.sh
./rocketmq/benchmark/consumer.sh
./rocketmq/benchmark/runclass.sh
./rocketmq/bin/setcache.sh
./rocketmq/bin/cachedog.sh
./rocketmq/bin/cleancache.sh
./rocketmq/bin/cleancache.v1.sh
./rocketmq/bin/play.sh
./rocketmq/bin/tools.sh
./rocketmq/bin/os.sh
./rocketmq/bin/startfsrv.sh
./rocketmq/bin/runbroker.sh
./rocketmq/bin/runserver.sh
-path 正则表达式
'/‘或’.'不会被视为通配符
-user 用户名
搜索属于指定用户的文件(允许使用用户ID)
查找当前目录及子目录下属性root的文件
[jianglei@localhost ~]$ find -user root
./.bin/nginx
./shell_test/tar/test01/etc.tar.bz2
./shell_test/ln/test01/b
-mtime 数字
以文件更改时间查找
在当前目录下查找更改时间在5天以内的文件
[jianglei@localhost ~]$ find ./ -mtime -5
./
./.config/dconf
./.config/dconf/user
./.config/nautilus
./.config/nautilus/desktop-metadata
./.lesshst
在当前目录下查找更改时间在3天之前的文件
[jianglei@localhost ~]$ find ./ -mtime +3
-type c
以文件类型查找
文件的类型
b | block (buffered) special |
c | character (unbuffered) special |
d | directory |
p | named pipe (FIFO) |
f | regular file |
l | 链接文件 |
s | socket |
D | door (Solaris) |
在当前目录下查找类型是链接的文件
[jianglei@localhost ~]$ find ./ -type l
-size n[cwbkMG]
以文件大小查找
b | 512b(默认) |
---|---|
c | bytes |
w | 2bytes |
k | 1024bytes |
M | 1024Kb |
G | 1024Mb |
未完待续