Linux中的搜索文件命令
文件搜索命令locate:搜索快,新建文件无法搜索;
命令格式: locate 文件名 //在后台数据库中按文件名搜索,搜索速度快;
/var/lib/mlocate
: locate命令所搜索的后台数据库
命令:updatedb // 更新数据库,默认是一天自动更新;
/etc/uodatedb.conf 配置文件中:
1. PRUNE_BIND_MOUNTS = “yes”
开启搜索限制
2. PRINEFS =
搜索时,不搜索的文件系统;
3. PRUNEFNAMES =
搜索时,不搜索的文件类型;
4. PRUNEFATHS =
搜索时,不搜索的路径;
命令的搜索命令:
命令格式:whereis 文件名 //搜索命令所在的路径和帮助文档所在位置;
选项:
-b: 只查找可执行文件
-m: 只查找帮助文档
命令格式:which 文件名 //搜索命令所在路径和别名
PATH环境变量:定义的是系统搜索命令的路径;
root@sd-ThinkCentre-XXXX:/#echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
命令:whoami :当前用户是谁?
命令:whatis ls :这个命令是干啥的
文件搜索命令find
一个扇区的大小为512K
find命令: find [搜索范围][搜索条件] 文件名 //搜索文件;
eg :find / -nameinstall.log
注:皮面大范围搜索,会非常的耗费系统资源
Find在系统中搜索符合条件的文件名、如果需要匹配,使用通配符。通配符是完全匹配;
Linux中的通配符:
1. * 匹配任意内容;
Eg:find /root ?Cname ana* // 意思就是匹配以“ana”开头的文件;
find /root ?Cname* //意思就是找出/root 下的所有文件
2. ? 匹配任意一个字符;
find /root ?Cname ab? //匹配以ab开头的三个字符的文件;
3. [] 匹配人任意一个中括号内的字符;
find/root ?Cname ab[cd] //匹配以ab开头的且包含【cd】其中一个的三个字符的文件;
命令find /root ?Ciname install.log //不用区分文件名字的大小写
命令find /root ?Cuser root //按照文件的所有者搜索文件
命令find /root ?Cnouser //查找没有所有者的文件
命令 find /var/log/ -mtime +10 //查找10天前修改的文件
1. -10 10天内修改的文件
2. 10 10天当天修改的文件
3. +10 10天以前修改的文件
4. atime 文件访问时间
5. ctime 改变文件属性
6. mtime 修改文件内容
命令find /etc -size 25k //查找文件大小是25k的文件
1. -25k 小于25k的文件
2. 25k 等于25k的文件
3. +25M 大于25M的文件
命令find /etc ?Cinum 130958 //查找i节点是140958的文件
命令find /etc ?Csize +20k ?Ca ?Csize -50k //查找/etc/目录下,大于20kb并且小于50kb的文件
1. -a and 逻辑与,两个条件都满足;
2. ?Co or 逻辑或, 两个条件满足一个即可;
命令find/etc ?Csize +20k ?Ca ?Csize -15k ?Cexec ls ?Clh {}\ //查找/etc/ 目录下,大于20kb并且小于50kb的文件,并且显示详细信息;
// -exec 命令 {} \ 对搜索结果执行操作;