Linux系统下查找文件命令
Linux 系统下查找文件命令,融合多部Linux经典著作,去除多余部分,保留实用部分。
查命令绝对路径: which用于查找并显示给定命令的绝对路径,环境变量中PATH参数也可以被查出来。
[root@localhost ~]# which bash |
寻找特定文件: whereis命令用来定位指令的二进制程序、源代码文件和man手册页等相关文件的路径,该命令只能用于程序名的搜索
[root@localhost ~]# whereis --help |
使用 whereis -b
命令找二进制文件,与帮助手册。
[root@localhost ~]# whereis -b ifconfig |
缓存查找文件: locate 搜索一个数据库/var/lib/mlocatedb,这个数据库中含有本地所有文件信息,Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件,为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库,updatedb命令会根据/etc/updatedb.conf来更新文件.
[root@localhost ~]# yum install -y mlocate |
使用 locate
命令查询一个文件.
[root@localhost ~]# updatedb |
遍历文件查找: find 命令可以说是最重要的查找命令了,该命令参数较多。
[root@localhost ~]# find --help |
-name 按文件名查找:
常用查询通配符 |
查找/var/目录下,以.log结尾的文件.
[root@localhost ~]# find /var/ -name "*.log" |
查找/root/目录下,以[1-3之间],结尾是.txt的文件
[root@localhost ~]# ls |
查找/etc/目录下,开头是6个任意字符的文件
[root@localhost ~]# find /etc/ -name "??????" |
-size 根据大小查找
单位是 block 数据块 一块是512字节 |
查找/etc/目录下,小于10k的文件
root@localhost ~]# find /etc/ -size -10k |
查找/etc/目录下,大于1M的文件
[root@localhost ~]# find /etc/ -size +1M #查询大于1M的文件 |
-user 根据属主与权限查找
在/root目录中查找属于wang用户的文件
[root@localhost ~]# find /root/ -user wang |
查找/boot/目录中权限是644的文件
[root@localhost ~]# find /boot/ -perm 0644 |
-type 根据类型查找
-type f 二进制文件(普通文件) |
查找/usr/bin/目录下,类型是二进制文件.
[root@localhost ~]# find /usr/bin/ -type f |
-time 按时间查找
按天数 ctime atime mtime |
查找/etc/目录下,在120分钟以内,内容被修改过的文件
[root@localhost ~]# find /etc/ -mmin -120 |
查找/etc/目录下,在7天之前,属性被修改过的文件
[root@localhost ~]# find /etc/ -ctime +7 |
-inum 根据i节点查询
有一些文件的硬链接数量很多,有相同的i节点,查找其中一个文件的i节点号,一次性删除。
[root@localhost ~]# find ./ -inum 1024 -exec rm{} \; #删除相同I节点的数据 |
-and or 逻辑连接符
-a (and 逻辑与) |
在/etc/目录下,查找大于1k,并且小于10k的文件
[root@localhost ~]# find /etc/ -size +1k -a -size -10k |
-exec 命令执行连接符
[查询格式] find ... -exec 命令 {} \; |
查找/var/log/目录下名字以.log结尾的文件,找到后执行 ls -l 显示详细信息.
[root@localhost ~]# find /var/log/ *.log -exec ls -l {} \; |
查找/etc/目录下名字以”init*“开头的文件,找到后,只列出文件,过滤掉目录,并执行 ls -l 显示详细信息.
[root@localhost ~]# find /etc/ -name "init*" -a -type f -exec ls -l {} \; |
查找/tmp/下,的yum.log文件,找到后直接删除.
[root@localhost tmp]# find /tmp/ -name yum.log -exec rm {} \; |
查找根下,找关于lyshark用户的所有文件,找到后直接删除.
[root@localhost ~]# find / -user lyshark -exec rm -r {} \; |
在根下,查找lyshark用户的文件,找到后删除,删除前会提示是否删除.
[root@localhost ~]# find / -user lyshark -ok rm -r {} \; |