当我们想要在linux的文件系统中寻找文件的时候就可以用find命令
find [路径...] [选项] [表达式]
面对全局搜索就是
find /
面对当前文件夹搜索?(可以递归搜索所有子文件夹和文件)
find .
?或者指定文件夹搜索
find /etc/
接下来是看find的选项有哪些
想象一下在windows的文件管理器或者mac的访达上,通常我们会输入名字搜索相关选项
在find中也可以使用名字进行文件搜索
find / -name "filename.txt"
有时候不记得大小写,可以加上i忽略大小写进行查找
find / -iname "filename.txt"
查找所有的文件格式
注意文件类型和上述的格式不一样,比如png格式和txt格式,一个是图片一个是文本,但是他们的类型都是文件,有时候会出现这样的情形,那就是只想要查找文件或者只想要所有的快捷方式,这就要使用按照文件类型查找的功能了
find / -type f
f 代表文件
d 代表文件夹
l 代表链接(或者理解为是快捷方式)
s 代表套接字文件
p 代表管道
b 代表块文件
find / -user username
find / -group groupname
find / -empty
按照时间查找特地用了更大的标题是因为在很多场合都会涉及到三个时间的概念
姑且提一嘴
ctime 是创建时间
mtime 是修改时间
atime 是访问时间
而且他们的单位都是天
我们用最经常用的mtime举例来说
如果要查找1天以内创建的文件的话就应该是
find / -mtime -1
但是如果要查找1天之前的文件的话就应该是
find / -mtime +1
一般来说 - 用的场景比较多,但是还是具体情况具体分析
- 就意味着实际上经过的时间小于这个指定的时间
除此之外,还有 -cmin -mmin -amin 三个可选项用于查找时间范围更加小更加精确限制的文件,其中单位是分钟
比如修改时间小于20分钟
find / -mmin -20
和时间一样,也有大于某个指定值和小于某个指定值的写法
单位可以是
c:字节(byte)
k:千字节(kilobytes)
M:兆字节(megabytes)
G:吉字节(gigabytes)
这里有一个注意点是M和G是大写,c和k是小写,而且byte是用c表示的而不是用b表示的
因为在find中b似乎指向了另一个单位 块 而不是byte
这个command的实际大小是31byte
使用find命令可以根据名称,时间,类型,格式,大小,拥有者,拥有组来查找
基本上可以应付绝大多数的文件和文件夹的查找范围