查找搜索类\color{blue}{\huge{查找搜索类}}查找搜索类
find
find
指令从指定目录向下递归地便利各个子目录,如果在/root
目录下进行寻找,根据文件目录的树状结构,就是进行全盘查找,非常浪费时间,所以使用find
进行寻找的时候,还是最好有一个大概的搜索范围,这样可以显著提高查找的速度。
①.按照文件名称进行查找
find 查找起始路径 -name 查找文件名字
❗❗❗❗❗❗❗❗❗查找文件名字的表示是支持正则表达式形式的(*.txt
)
②. 按照用户进行查找
find 查找其实路径 -user 查找用户名字
③. 按照文件大小进行查找
find 查找起始路径 -size +/-/大小
+n
:>n
-n
:<n
n
: =n
find / -size +200M
:(/
全盘查找,运行会很慢)
小细节\color{blue}{小细节}小细节:ls -l
会将当前目录下所有文件的详细信息都列成一行列出来,但是文件的大小就是实打实的表示,人看起来很不方便。ls -lh
可以将大小转换为M
为单位,便于阅读。
locate
locate
的快速查找是基于建立的系统文件名称的数据库来实现的。
使用locate
查找之前一定要先执行updatedb
来创建文件名数据库。
建立好数据库之后,使用locate
查找可以大幅度减少查找速度。
which
which
指令用于查找使用的指令存放在了哪里。
使用which
指令查找ls
和which
指令的存放位置。
grep
grep
是用来进行过滤查找的。这个过滤查找不是像上面的一样查找一个文件是否存在,而是查找一个文件中的某个数据是否存在\color{blue}{而是查找一个文件中的某个数据是否存在}而是查找一个文件中的某个数据是否存在。
同样grep
配合管道指令|
进行使用。
cat /home/hello.txt | grep -n "hello"
:在hello.txt
中查找hello
出现的位置,并且标出行号。