find / -name lua.h查找文件
如: find / -name jdk-7u3-linux-x64.rpm
find / -name filename.txt根据名称查找/目录下的filename.txt文件。
find . -name "*.xml" 递归查找所有的xml文件
find . -name "*.xml" |xargs grep "hello world" 递归查找所有文件内容中包含hello world的xml文件
2.按照文件特征查找
(1)find / -amin -10 # 查找在系统中最后10分钟访问的文件(access time)
(2)find / -atime -2 # 查找在系统中最后48小时访问的文件
(3)find / -empty # 查找在系统中为空的文件或者文件夹
(4)find / -group cat # 查找在系统中属于 group为cat的文件
(5)find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件(modify time)
(6)find / -mtime -1 #查找在系统中最后24小时里修改过的文件
(7)find / -user fred #查找在系统中属于fred这个用户的文件
(8)find / -size +10000c #查找出大于10000000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB)
(9)find /-size -1000k #查找出小于1000KB的文件
查找文件中的内容:
grep -H 'spring' *.xml查找所有的包含spring的xml文件
find ./ -size 0 | xargs rm -f &删除文件大小为零的文件
ls -l | grep '.jar'查找当前目录中的所有jar文件
grep 'test' d*显示所有以d开头的文件中包含test的行。
grep 'test' aa bb cc显示在aa,bb,cc文件中匹配test的行。
grep '[a-z]\{5\}' aa 显示所有包含每个字符串至少有5个连续小写字符的字符串的行。
grep -nr "16384" /usr/local/freeswitch/conf/ -n显示行号 -r 递归查找 -i 忽略大小写
http://www.gnu.org/software/grep/
Linux下grep显示前后几行信息
grep -C 5 foo file 显示file文件里匹配foo字串那行以及上下5行
grep -B 5 foo file 显示foo及前5行
grep -A 5 foo file 显示foo及后5行
locate
locate命令其实是"find -name"的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。
locate命令的使用实例: $ locate /etc/sh 搜索etc目录下所有以sh开头的文件。
$ locate ~/m 搜索用户主目录下,所有以m开头的文件。
$ locate -i ~/m 搜索用户主目录下,所有以m开头的文件,并且忽略大小写。