linux 文件搜索

时间:2022-07-28 06:49:39

locate  文件名

在后台数据库中按文件名搜索,搜索速度快,不用遍历整个操作系统

/var/lib/mlocate   locate 命令所搜索的后台数据库

updatedb      手动更新数据库

新建的文件搜索不出来,大概一天自动更新一次数据库只能按照文件名来搜索

/etc/updatedb.conf     按照配置文件搜索

whereis   命令名

搜索系统命令所在路径及帮助文档所在位置

-b          只查找可执行文件

-m         只查找帮助文档

which   命令名

看到命令所在位置 和命令别名

cd 找不到是shell自带的命令.              echo  $PATH  环境变量 从环境变量里搜索命令

find [搜索范围][搜索条件] 搜索内容

避免大范围搜索,会非常耗费系统资源

find 在系统中搜索符合条件的文件名.如果需要匹配,使用通配符匹配,通配符是完全匹配.   * 匹配任意内容 ?匹配任意一个字符 []匹配任意一个中括号内的字符

find /root -iname install.log        -iname    不区分大小写

find /root -user root   按所有者搜索

find /root -nouser  查找没有所有者的文件

find /var/log/ -mtime +10    查找10天前修改的文件   -10   10天内修改的文件  10 10天当天修改的文件  +10 10天前修改的文件

atime  文件的访问时间      ctime       改变文件属性       mtime       修改文件内容

find . -size 25k       查找文件大小是25KB的文件 .指当前目录  -25k小于25k      +25k大于25k     25k正好25k

find /root -inum 32332   听说i节点来查找文件

find /etc -size +20k -a -size -50k     -a  and   逻辑与,两个条件都满足  -o or 逻辑或,两个条件满足一个即可

find /etc -size +20k -a -size -50k  -exec  ls -l {} \;       -exec/-ok  命令2 {} \  执行第一条搜索出的结果交给第二条命令处理

grep命令

grep [选项] 字符串 文件名 在文件中匹配符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式是包含匹配

-i   忽略大小写       -v 排除指定字符串