文件搜索命令学习笔记

文件搜索命令 locate,搜索比较快,但不是实时的
locate 文件名
/var/lib/mlocate是locate命令的数据库,所以新文件就没法搜到,这个文件不是实时更新。
可以用updatedb这个命令来执行数据库更新
locate只能按照文件名来进行搜索
/etc/updatedb.conf是locate命令的配置文件,可以在里面配置不搜索那些目录和文件等等
whereis 命令名
用于搜索系统命令名在那些位置及帮助文档位置,如 whereis ls
which 命令名
用于搜索系统命令,并能显示别名,比如which ll,会显示
[root@localhost /]# which ll
alias ll='ls -l --color=auto'
/bin/ls
但是cd命令就找不到,因为此命令是shell的内置命令,所以搜索不到
PATH环境变量,echo $PATH
[root@localhost /]# echo $PATH
/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
所有执行的命令都会从这里去找,系统搜索命令的路径。
find命令非常强大,但是比较慢,耗费资源。
find 搜索范围 搜索条件
find / -name install.log  在根目录下搜索叫install.log的文件
如果需要模糊查询,必须使用通配符,通配符 *  ? []
find / -name "install.log*",记得要打双引号
find / -name "ab[cd]"  搜索abc或者abd,中括号内任意一个字符
搜索时不区分大小,使用-iname
find /root -nouser 搜索没有所有者的文件
find /var/log/ -mtime +10   查找十天前修改的文件
-10    10天前
10      10天当天
+10     10前修改的文件
atime
ctime
mtime
find . -size 25k  搜索当前文件夹下25k的文件
+25k  大于25k
-25k   小于25k
+25M  大于25M
记得k,M大小写
find . iunm 262412  采用i节点来查找文件,ls -i
find /etc -size +20k -a -size -50k
查找/etc下大于20k,小于50k的文件,其中-a是and的意思
也可以用 -o,-o是or的意思
find /etc -size +20k -a -size -50k -exec ls -lh {} \;
find命令查找出来的文件,然后在下一个命令下再进行执行
-exec    {} \;
字符串搜索命令grep
grep 字符串 文件名
grep "size" install.log,搜索install.log的有size的行
grep -v "size" intall.log,-v就是反选

添加回复:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。