Linux 查找文件命令 find whereis locate
Linux 有三个查找文件的命令:find, whereis, locate 其中find 不常用,whereis与locate经常使用,因为find命令速度较慢,因为whereis与locate是利用数据库来查找数据,而find直接查找硬盘。
1 whereis
whereis 命令只能用户程序名称的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m) 和源代码文件(参数-s). 如果省略参数,则返回所有信息。和find相比,whereis查找的速度非常快,这是因为linux系统会将系统内的所有文件都记录在一个数据库文件中,当使用whereis和locate时,会从数据库中查找数据,而不是像find命令那样,通 过遍历硬盘来查找,效率自然会很高。
但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。
whereis [-bmsu] 文件或者目录名
-b: 只找二进制格式的文件
-m: 只找在说明文件manual 路劲下的文件
-s: 只找source 源文件
-u: 查找不在上述三个选项中的其他特殊文件
实例,查询ifconfig文件名
[root@oracledb ahome]# whereis ifconfig
ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz
[root@oracledb ahome]# whereis -b ifconfig
ifconfig: /sbin/ifconfig
[root@oracledb ahome]# whereis -m ifconfig
ifconfig: /usr/share/man/man8/ifconfig.8.gz
[root@oracledb ahome]# whereis -s ifconfig
ifconfig:
2 locate
locate使用也非常简单,而且使用范围比whereis大的多,只需要部分文件名就可以进行模糊查询,同时locte还可以通过-r选项使用正则表达式,功能十分强大。与whereis一样 locate使用的索引数据库里的信息并不一定是实时有效的,可以使用updatedb命令更新索引数据库。
locate [-ir] keyword
实例,查询passwd命令,查找包含passwd字符的文件,显示前5条记录
[root@oracledb ahome]# locate passwd|head -n 5
/etc/passwd
/etc/passwd-
/etc/pam.d/passwd
/etc/security/opasswd
/lib64/security/pam_passwdqc.so
3 find
find 命令遍历当前工作目录及其子目录,在硬盘上遍历查找,非常耗硬盘资源,查找效率相比whereis和locate较低。
find [path] [option] [action]
时间查找参数:
-atime n: 将n*24小时内access过的文件列出来
-ctime n: 将n*24小时内状态发生改变的文件列出来
-mtime n: 将n*24小时内被修改过的文件列出来
-newer file: 把比file还要新的文件列出来
名称查找参数:
-gid n: 寻找群组ID为n的文件
-group name: 寻找群组名称为name的文件
-uid n: 寻找拥有者ID为n的文件
-user name: 寻找拥有者名称为name的文件
-name file: 寻找文件名为file的文件(可以使用通配符)
-nouser: 寻找文件所有者不在/etc/passwd的文件
-nogroup: 寻找文件的所有组不在/etc/group的文件
实例,将过去24小时内有改动的文件列出来。
[root@oracledb ahome]# find / -mtime 0|head -n 10
/
/proc
/proc/kmsg
/proc/stat
/proc/meminfo
/proc/vmstat
/proc/mdstat
/proc/acpi
/proc/acpi/event
/proc/sys
将3天前24小时内有改动的文件列出
[root@oracledb ahome]# find / -mtime 3
寻找/etc 下比/etc/passwd新的文件
[root@oracledb ahome]# find /etc -newer /etc/passwd
/etc
/etc/group
/etc/gshadow
/etc/shadow
查找/var 下4天前被修改过的文件
[root@oracledb ahome]# find /var -mtime +4
查找/var 下4天以内被修改过的文件
[root@oracledb ahome]# find /var -mtime -4
查找/var 下4~5天内被修改过的文件
[root@oracledb ahome]# find /var -mtime 4
查找/home 下属于latiny1的文件
root@oracledb ahome]# find /home -user latiny1
/home/latiny1
/home/latiny1/.kshrc
/home/latiny1/.bashrc
/home/latiny1/.bash_profile
/home/latiny1/.mozilla
/home/latiny1/.mozilla/plugins
/home/latiny1/.mozilla/extensions
/home/latiny1/.bash_logout
/home/latiny1/.gnome2
/home/latiny1/.viminfo
查找不属于任何人的文件
[root@oracledb ahome]# find / -nouser
查找文件名为latiny1 的文件
[root@oracledb ahome]# find / -name latiny1
/var/spool/mail/latiny1
/home/latiny1
查找/var 目录下文件类型为Socket的文件名
[root@oracledb ahome]# find /var -type s|head -n 10
/var/run/rpcbind.sock
/var/run/abrt/abrt.socket
/var/run/acpid.socket
/var/run/portreserve/socket
/var/run/dbus/system_bus_socket
/var/run/cups/cups.sock
/var/run/sdp
/var/tmp/.oracle/s#1623.1
/var/tmp/.oracle/s#1631.2
/var/tmp/.oracle/s#1590.2
查找包含有SGID或者SUID 或者SBIT属性的文件
[root@oracledb ahome]# find / -perm +7000|head -n 10
find还可以在后面再接其他合适的命令来处理查找结果,如查找/srv/ahome里包含SUID、SGID、SBIT属性的文件或者目录,然后对结果使用ls -l命令。
[root@oracledb ahome]# find /srv/ahome -perm +7000 -exec ls -l {} \;
total 4
-rw-rw-r-- 1 latiny1 latiny1 0 Jul 3 11:13 lainty1
-rw-rw-r-- 1 latiny2 project 7 Jul 3 11:20 latiny2
-rw-r--r-- 1 root project 0 Jul 3 14:27 test1.sh
[root@oracledb ahome]# find /srv/ahome -name latiny2 -exec ls -l {} \;
-rw-rw-r-- 1 latiny2 project 7 Jul 3 11:20 /srv/ahome/latiny2
查找/etc 下文件大小介于50K到60K的文件,并且对结果使用ls -l命令
[root@oracledb ahome]# find /etc -size +50k -size 60k -exec ls -l {} \;
-rw-r--r--. 1 root root 61021 Nov 12 2010 /etc/gconf/schemas/rhythmbox.schemas
[root@oracledb ahome]#
查找/etc 下文件容量大于50K且文件所有者不是root的文件,并且对结果使用ls -l命令
[root@oracledb ahome]# find /etc -size +50k -not -user root -exec ls -l {} \;
[root@oracledb srv]# find ./ -size -50k -not -user root -exec ls -l {} \;
-rw-rw-r-- 1 latiny2 project 7 Jul 3 11:20 ./ahome/latiny2
-rw-rw-r-- 1 latiny1 latiny1 0 Jul 3 11:13 ./ahome/lainty1
查找/etc 容量大于1500k以及容量等于0的文件
[root@oracledb srv]# find /etc -size 0k -or -size +1500k
Linux 查找文件命令 find whereis locate的更多相关文章
- linux 查找文件命令
find -name 文件名 在当前目录下查找 find -name nginx.conf
- linux查找文件命令
(2)find /etc -name httpd.conf #在/etc目录下文件httpd.conf
- linux查找文件命令find
http://blog.csdn.net/ydfok/article/details/1486451 find 路径 -name'文件名' 如:find / -name '*dhcp*'
- [转帖]Linux查找文件6个高效工具
Linux查找文件6个高效工具 https://www.linuxrumen.com/rmxx/176.html 需要实操 -inname -type 等等. 1. 前言 我们使用Linux过程中,经 ...
- [转] Linux 查找文件内容
Linux查找文件内容的常用命令方法. 从文件内容查找匹配指定字符串的行: $ grep "被查找的字符串" 文件名例子:在当前目录里第一级文件夹中寻找包含指定字符串的.in文件g ...
- linux 查看文件命令总结
linux 查看文件命令总结 1.cat 查看文件内容 选项-b 空白行不显示行号.-n,空白行显示 2.more 查看文件内容,通过空格键查看下一页 q键退出查看 3.less 和上同,多了方向键( ...
- Linux下相关查找文件命令(find locate which whereis type)
以下内容摘自:http://blog.csdn.net/jessica1201/article/details/8139249 标注的内容为自己的补充: 我们经常需要在系统中查找一个文件,那么在lin ...
- linux的查找命令 find whereis locate
Linux 有三个查找文件的命令:find, whereis, locate 其中find 不常用,whereis与locate经常使用,因为find命令速度较慢,因为whereis与locate是利 ...
- Linux 操作系统(二)搜索文件命令find、locate、which、whereis、grep、wc
以下命令均已在 Kali Linux 下验证. 1.find 命令 --1-- find /usr/share -name test.lst //精准搜索,文件名需要与-name后的内容一模一样包括后 ...
随机推荐
- python3编写网络爬虫17-验证码识别
一.验证码识别 1.图形验证码的识别 识别图形验证码需要 tesserocr 库 OCR技术识别(光学字符识别,是指通过扫描字符,然后通过其形状将其翻译成电子文本的过程.)例如 中国知网注册页面 ht ...
- TCP Health Checks
This chapter describes how to configure health checks for TCP. Introduction NGINX and NGINX Plus can ...
- JavaScript对象数组根据某属性sort升降序排序
1.自定义一个比较器,其参数为待排序的属性. 2.将带参数的比较器传入sort(). var data = [ {name: "Bruce", age: 23, id: 16 ...
- 待解决问题 :JDBC indexInsert.addBatch(); 为什么不生效 PSTM
JDBC indexInsert.addBatch(); 为什么不生效 PSTM
- docker 3 docker安装
centos docker安装 docker支持以下centos版本: centos 7 (64-bit) centos 6.5 (64-bit)或更高的版本 前提条件 目前,centos仅发行版中的 ...
- Python 在 Terminal 中的自动补全
为了在 Terminal 中使用 Python 更加方便,在 home 目录下添加脚本 .pythonstartup,内容如下, 然后在 .bashrc 中添加 export PYTHONSTARTU ...
- 2018.11.10 FCC java分享大会
一.<android热修复背后的java技术> 1.类是如何被jvm加载的 (1)由类加载器加载 (2)类加载器分类,基于双亲委派原则(建议) (3)关键代码 先去判断是否已经加载,如果没 ...
- keystone系列四:keystone部署及操作
一 前言 任何软件的部署都是没有技术含量的,任何就部署讲部署的人都是江湖骗子. 部署的本质就是拷贝,粘贴,回车.我们家养了条狗,它可以胜任这件事情. 我们搞技术的,一定不能迂腐:轻信或者一概不信. 轻 ...
- 如何备份和恢复你的TFS服务器(一)
备份和恢复一个TFS(Team Foundation Server)服务器常常令人心生畏惧.因为这会涉及到很多服务和步骤.TFS(Team Foundation Server)2010一发布,我就知道 ...
- vue 项目中添加阿里巴巴矢量图
1. 选择需要的图标,添加到购物车 2. 打开购物车,添加至我的项目 3. 打开项目列表 - 更多操作 - 编辑项目 修改FontClass/Symbol前缀,自定义一个名称,例如:v-icon-cu ...