Linux文件搜索命令
目录
Linux文件搜索命令
1.find:在指定目录下查找文件
- find命令对文件进行搜索的时候完全匹配文件名,find命令对文件进行搜索的时候完全匹配文件名
- 通配符有:
*
:匹配任意内容;?
: 匹配一个任意字符;[]
:匹配中括号内任一字符
find [搜索范围] [匹配条件]
-name 文件名:按文件名查找
-iname 文件名:按文件名查找,且忽略大小写
-size 文件大小:按文件大小查找(+:大于 -:小于 =:等于,单位K、M、G)
-type 文件类型:按文件类型查找(d: 目录,f: 一般文件,c: 字型装置文件,b: 区块装置文件,p: 具名贮列,l: 符号连结,s: socket)
-amin 分钟数:在过去 n 分钟内被读取过
-atime 天数: 在过去 n 天内被读取过的文件
-cmin 分钟数: 在过去 n 分钟内被修改过
-ctime 天数: 在过去 n 天内创建的文件
1.查找当前目录下文件名为test.txt的文件
find . -name "test.txt"
2.查找root目录下所有文件名包含'.txt'的文件
find /root -name "*.txt"
3.查找当前目录下所有文件大小大于10K的文件
find . -size +10k
4.查找当前目录及其子目录中的所有文件类型是目录
find . -type d
2.locate:查找资料库中的文档
- locate 与 find 不同: find 是去硬盘找,locate 只在 /var/lib/slocate 资料库中找;
- locate 的速度比 find 快,它并不是实时查找,而是查数据库;
- 数据库的更新为准,一般是系统自己维护,也可以通过命令
updatedb
手工升级数据库
locate 文档名
1.查找包含test的目录及文件位置
locate test
2.查找etc目录下所有以 sh 开头的文件
locate /etc/sh
3.忽略大小写搜索当前用户目录下所有以 r 开头的文件
locate -i ~/r
3.whereis:查找命令文件所在位置
whereis [-bfmsu] 命令名
-b:只查找二进制文件
-f:不显示文件名前的路径名称
-m:只查找说明文件
-s:只查找原始代码文件
-u:查找不包含指定类型的文件
1.查看ls命令所在的路径
whereis ls
2.只查找ls命令的二进制文件
whereis -b ls
3.只查找ls命令的说明文件
whereis -m ls
4.which:查找环境变量中命令所在位置
- 会在环境变量$PATH设置的目录里查找符合条件的文件;
- 在Linux中要想执行一个命令需要用绝对路径,命令的绝对路径添加的环境变量$PATH中,就可以直接通过命令名使用相应的命令;
which 命令名
1.查找ls命令所在路径及别名
which ls
5.grep:查找文件里符合条件的字符串
grep [选项] [范本样式] [文件或目录...]
-a:不要忽略二进制的数据
-i:忽略字符大小写的差别
-d <目录>:查找指定目录下符合条件的文件
-r:递归查找指定目录下符合条件的文件
-v: 显示不包含匹配文本的所有行
-e <范本样式>: 指定字符串作为查找文件内容的样式
1.查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行
grep test *file
2.查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串"update"的文件,并打印出该字符串所在行的内容
grep -r update /etc/acpi
3.查找文件名中包含 test 的文件中不包含test 的行
grep -v test *test*
4.从文件内容查找与正则表达式匹配的行
grep –e "正则表达式" 文件名