首页 > 代码库 > find命令

find命令

一、find搜索命令

which命令

查找可执行文件的绝对路径 之前已经用到过该命令了,需要注意的是which只用来查找PATH环境变量中出现的路径下的可执行文件。有时候我们不知道某个命令的绝对路径,which一下很容易就知道了。

[root@localhost ~]# which lsalias ls=‘ls --color=auto‘
	/usr/bin/ls[root@localhost ~]# which cat/usr/bin/cat

whereis命令

查找文件 它是通过预先生成的一个文件列表去查找跟给出的文件名相关的文件。

语法:whereis [-bmsu] [文件名称]

-b :只找binary文件

-m:只找在说明文件manual路径下的文件

- s :只找souree来源文件

- u:没有说明档的文件

[root@localhost ~]# whereis lsls: /usr/bin/ls /usr/share/man/man1/ls.1.gz

这个命令类似于模糊查找,只要文件名包含这个“ls”字符就会列出来。whereis很少用到。

locate命令(有局限性,不会去搜“tmp”下的文件)

它类似于whereis,也是通过查找预先生成的文件列表库来告诉用户要查找的文件在哪里。后边直接跟文件名。 如果Linux没有这个命令,请安装软件包mlocate.

#yum install -y mlocate    (安装mlocate)#locate passwd    (运行搜索命令)locate:can not open /var/lib/mlocate/mlocate.db‘:No such file or directory            (报错;db:没有这样的文件或目录)

安装好mlocate包后,运行locate命令会报错,这是因为系统还没有生成那个文件列表库。可以使用updatedb命令立即生成(更新)这个库。 #updatedb更新完之后运行locate passwd 命令,会显示以下结果(局部)

[root@localhost ~]# updatedb[root@localhost ~]# locate passwd/etc/passwd
/etc/passwd-/etc/pam.d/passwd
/etc/security/opasswd
/usr/bin/gpasswd
/usr/bin/grub2-mkpasswd-pbkdf2
/usr/bin/passwd
/usr/lib/firewalld/services/kpasswd.xml/usr/lib64/security/pam_unix_passwd.so
/usr/sbin/chpasswd
/usr/sbin/lpasswd
/usr/sbin/saslpasswd2
/usr/share/awk/passwd.awk
/usr/share/doc/passwd-0.79/usr/share/doc/passwd-0.79/AUTHORS/usr/share/doc/passwd-0.79/COPYING/usr/share/doc/passwd-0.79/ChangeLog

【提示:】 如果服务器上正运行着重要的业务,那么最好不要去运行这个命令,因为一旦运行,服务器的压力会变大。 这个数据库默认情况下每周更新一次。当使用locate命令去搜索一个文件,而该文件正好是在两次更新时间段内创建的,那肯定是得不到结果。我们可以到 /etc/updated.conf去配置这个数据库生成(更新)的规则。

find命令

find这个搜索工具是平时用的最多的一个,所以一定要熟悉find。

语法 :find 【路径】【参数】

  • find [搜索范围] [搜索条件]

#搜索文件

  • find / -name install.log

#避免大范围搜索,会非常耗费系统资源 #find在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配。

  • nd /var/log/ -mtime +10

#查找10天前修改的文件

-10 10天内修改的文件;

10 10天当天修改的文件;

+10 10天前修改的文件。

atime 文件访问时间;

ctime 改变文件属性;

mtime 修改文件内容。

  • find /etc -size +20k -a -size -50k

#查找/etc/目录下,大于20kb并且小于50kb的文件;

-a, and 逻辑与,两个条件都满足;

-o, or 逻辑或,两个条件满足一个即可。

find /etc -size 20k -a -size -50k -exec ls -lh {} ;

#查找/etc/目录下,大于20kb并且小于50kb的文件,并且显示详细信息;

#-exec/ -ok命令{} ;对搜索结果执行操作。

  • find . -size 25k

#查找文件大小是25kb的文件;

-25k 小于25kb的文件;

25k 等于25kb的文件;

+25k 大于25kb的文件。

  • find . -inum 262422

#查找i节点是262422的文件。

  • find /root -iname install.log

#不区分大小写。

  • find /root -user root

#按照所有者搜索

  • find /root -nouser

#查找没有所有者的文件


下面是几个经常用的参数

-atime +n/-n:访问或执行时间大于、小于n天的文件;

-ctime +n/-n:写入、更改inode属性(例如更改所有者、权限或者链接)时间大于、小于n天的文件;

-mtime +n/-n:写入时间大于/小于n天的文件。

find常用项:

-name filename: 直接查找改文件名额文件,这个选项使用很多。

#find .-name test2./test/test2
./test2

-type filetype:通过文件类型查找。

filetype包含了f , b, c , d , l , s ,等文件类型。


本文出自 “12350027” 博客,谢绝转载!

find命令