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

Linux文件搜索命令_第1张图片

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 "正则表达式" 文件名

你可能感兴趣的:(Linux,linux,运维,服务器)