1.locate工具
locate 文件名
locate属于模糊查询,只要文件名包含关键字即可;
基于数据库索引查询 /var/lib/mlocate/mlocate.db ;第一次查询需要执行updatedb
隔一段时间自动更新数据库,新创建的文件locate查询不到,手动updatedb
locate的缺点:查找文件的时候会排除一些目录以及一些文件格式后缀,例如/mnt /tmp
修改配置文件:/etc/updatedb.conf
locate -n 5 查询前5行
locate -i 忽略大小写
2.find工具
find 查找的路径 条件 动作
默认动作是-print
find不指定路径则查找的是当前路径
对于find要查找的目录,当前用户必须要有rx权限
find和locate的区别:
- find属于精确查找,locate属于模糊查找
- locate有排除目录,find无排除目录
- find可以实时查找,locate还需要更新数据库
条件:(以下查找的路径都省略掉了)
根据文件名查找
find -name ‘*.sh’ 支持通配符
find -iname ‘huawie’ 忽略大小写
根据inode和硬连接数量查找
find -inum 3224542
find -links 2
根据文件拥有人和拥有组查找
find -user ldap1
find -group ldap1
find -uid 0
find -gid 0
find -nouser
find -nogroup
根据文件权限查找
-perm 644 权限必须满足ago为644的权限
-perm /644 只要权限满足一个即可(700也可以查询到,因为7里面包含6)
-perm -644 必须所有的权限同时满足(645可以查询到,因为645里面包含644)
0表示不关注,只有 – 和 / 才有意义
根据时间戳查找
access 访问时间(例如cat访问文件…)
modify 修改时间(修改文件的内容…)
change 改变时间(修改文件的属性信息,例如文件的权限和时间戳…)
以天为单位
atime、mtime、ctime
eg:find / -atime +10 大于10天
-10 小于10天
10 等于10天
以分钟为单位
amin、mmin、cmin
根据逻辑组合来查找
-a 逻辑与
find / -user root -a -group ldap1
-o 逻辑或
find / -user root -o -user ldap1
!/ -not 逻辑非
find / -not -user root 查找/目录用户不 是root的
根据文件大小来查找
大小的单位:k M G
find / -size -10M 查找根目录小于10M的文件(不包含10M)
find / -size +10M 查找根目录大于10M的文件(不包含10M)
find / -size 10M 查找根目录等于10M的文件
3.dd命令:
dd if=/dev/zero of=/opt/file bs=10M count=1
if 输入设备 of 输出设备 bs 块大小 count 数量
用来生成指定大小的文件,也可以将磁盘中的数据进行备份
根据文件的类型来查找
-type f 普通文件
d 目录
s 网络套接字
b 块设备
l 软连接
p 管道文件
动作
-pirnt 默认动作,打印文件名称
-ls 列出详细信息,类似于ls -l
-fls 另存为文件
-delete 删除
-ok command {} \; 后面接上执行的命令,以交互式方式执行
-exec command {} \; 后面接上执行的命令,直接执行
不是所有的命令都能通过管道符进行传递,find的输出不会通过管道传递;需要通过xargs 进行传递
eg: find /opt -name file | xargs chmod 777