Linux入坑笔记(七、Linux 文件搜索)

简介: Linux入坑笔记(七、Linux 文件搜索)

 鼠年大吉!

image.png

文章目录

find

基本语法:find [搜索范围] [选项]

image.png

find命令是在Linux系统中用来进行文件搜索用的最多的命令,功能特别强大。但是尽量少用find命令去执行搜索任务,就算要搜索也应该尽量的缩小范围,也不要在服务器使用高峰期进行文件搜索,因为搜索也是很占系统资源的。这就在进行Linux文件整理的时候,尽量规范化,什么文件放在什么目录下都要有比较好的约定。

根据文件或目录名称搜索

find 【搜索目录】【-name或者-iname】【搜索字符】:-name和-iname的区别一个区分大小写,一个不区分大小写

  • ①、find /etc -name init (精准搜索,名字必须为 init 才能搜索的到)
  • ②、find /etc -iname init (精准搜索,名字必须为 init或者有字母大写也能搜索的到)
  • ③、find /etc -name *init (模糊搜索,以 init 结尾的文件或目录名)
  • ④、find /etc -name init??? (模糊搜索,? 表示单个字符,即搜索到 init___)

image.png

根据文件大小搜索

比如:在根目录下查找大于 100M 的文件

find / -size +204800

image.png

这里 +n 表示大于,-n 表示小于,n 表示等于

 1 数据块 == 512 字节 ==0.5KB,也就是1KB等于2数据块

  100MB == 102400KB==204800数据块

根据所有者和所属组搜索

  • ①、在home目录下查询所属组为 root 的文件
find /home -group root

*  ②、在home目录下查询所有者为 root 的文件

find /home -user root

image.png

根据时间属性搜索

find 【路径】【选项】【时间】

选项有下面三种:

  • -amin 访问时间
  • -cmin 文件属性被更改
  • -mmin 文件内容被修改

时间:+n,-n,n分别表示超过n分钟,n分钟以内和n分钟

范例:在 /etc 目录下查找5 分钟内被修改过属性的文件和目录

find /etc -cmin -5

根据文件类型或i节点搜索

  • -type 根据文件类型查找:f表示文件,d表示目录,l表示软链接

范例:查找 /home 目录下文件类型是目录的

 find /home -type d
  • -inum 根据i节点查找

范例:查找 /tmp 目录下i节点为400342的文件或目录

find /tmp -inum 400342

image.png

组合条件搜索

这里有两个参数:

  • ①、-a 表示两个条件同时满足(and)
  • ②、-o 表示两个条件满足任意一个即可(or)

范例:查找/etc目录下大于80MB同时小于100MB的文件

 find /etc -size +163840 -a -size -204800

locate

locate命令其实是find  -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

语法:locate/slocate [选项] [参数]

选项:

  • -d<目录>或–database=<目录>:指定数据库所在的目录;
  • -u:更新slocate数据库;
  • –help:显示帮助;
  • –version:显示版本信息

参数:

查找字符串:要查找的文件名中含有的字符串。

范例:搜索etc目录下所有以sh开头的文件

locate /etc/sh

image.png

which

which命令用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录。which指令会在环境变量$PATH设置的目录里查找符合条件的文件。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

语法:which [选项] [参数]

选项:

  • -n<文件名长度>:制定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名;
  • -p<文件名长度>:与-n参数相同,但此处的<文件名长度>包含了文件的路径;
  • -w:指定输出时栏位的宽度;
  • -V:显示版本信息。

参数:

指令名:指令名列表。

范例:查找文件、显示命令路径

which pwd

image.png

grep

grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

选项:

  • -a 不要忽略二进制数据。
  • -A<显示列数> 除了显示符合范本样式的那一行之外,并显示该行之后的内容。
  • -b 在显示符合范本样式的那一行之外,并显示该行之前的内容。
  • -c 计算符合范本样式的列数。
  • -C<显示列数>或-<显示列数> 除了显示符合范本样式的那一列之外,并显示该列之前后的内容。
  • -d<进行动作> 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作。
  • -e<范本样式> 指定字符串作为查找文件内容的范本样式。
  • -E 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。
  • -f<范本文件> 指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式。
  • -F 将范本样式视为固定字符串的列表。
  • -G 将范本样式视为普通的表示法来使用。
  • -h 在显示符合范本样式的那一列之前,不标示该列所属的文件名称。
  • -H 在显示符合范本样式的那一列之前,标示该列的文件名称。
  • -i 忽略字符大小写的差别。
  • -l 列出文件内容符合指定的范本样式的文件名称。
  • -L 列出文件内容不符合指定的范本样式的文件名称。
  • -n 在显示符合范本样式的那一列之前,标示出该列的编号。
  • -q 不显示任何信息。
  • -R/-r 此参数的效果和指定“-d recurse”参数相同。
  • -s 不显示错误信息。
  • -v 反转查找。
  • -w 只显示全字符合的列。
  • -x 只显示全列符合的列。
  • -y 此参数效果跟“-i”相同。
  • -o 只输出文件中匹配到的部分。

范例:

在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行:

grep test *file 

查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串"update"的文件,并打印出该字符串所在行的内容:

grep -r update /etc/acpi 

image.png



目录
相关文章
|
15天前
|
Linux 开发工具 Perl
在Linux中,有一个文件,如何删除包含“www“字样的字符?
在Linux中,如果你想删除一个文件中包含特定字样(如“www”)的所有字符或行,你可以使用多种文本处理工具来实现。以下是一些常见的方法:
38 5
|
16天前
|
安全 Linux 数据安全/隐私保护
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。本文介绍了使用 `ls -l` 和 `stat` 命令查找文件所有者的基本方法,以及通过文件路径、通配符和结合其他命令的高级技巧。还提供了实际案例分析和注意事项,帮助读者更好地掌握这一操作。
34 6
|
16天前
|
Linux
在 Linux 系统中,`find` 命令是一个强大的文件查找工具
在 Linux 系统中,`find` 命令是一个强大的文件查找工具。本文详细介绍了 `find` 命令的基本语法、常用选项和具体应用示例,帮助用户快速掌握如何根据文件名、类型、大小、修改时间等条件查找文件,并展示了如何结合逻辑运算符、正则表达式和排除特定目录等高级用法。
50 6
|
17天前
|
监控 Linux Perl
Linux 命令小技巧:显示文件指定行的内容
在 Linux 系统中,处理文本文件是一项常见任务。本文介绍了如何使用 head、tail、sed 和 awk 等命令快速显示文件中的指定行内容,帮助你高效处理文本文件。通过实际应用场景和案例分析,展示了这些命令在代码审查、日志分析和文本处理中的具体用途。同时,还提供了注意事项和技巧,帮助你更好地掌握这些命令。
33 4
|
22天前
|
网络协议 Linux
linux系统重要文件目录
本文介绍了Linux系统中的重要目录及其历史背景,包括根目录、/usr、/etc、/var/log和/proc等目录的结构和功能。其中,/etc目录下包含了许多关键配置文件,如网卡配置、DNS解析、主机名设置等。文章还详细解释了各目录和文件的作用,帮助读者更好地理解和管理Linux系统。
43 2
|
21天前
|
缓存 监控 Linux
|
25天前
|
Linux Shell 数据库
文件查找是Linux用户日常工作的重要技能介绍了几种不常见的文件查找方法
文件查找是Linux用户日常工作的重要技能。本文介绍了几种不常见的文件查找方法,包括使用`find`和`column`组合、`locate`和`mlocate`快速查找、编写Shell脚本、使用现代工具`fd`、结合`grep`搜索文件内容,以及图形界面工具如`Gnome Search Tool`和`Albert`。这些方法能显著提升文件查找的效率和准确性。
42 2
|
监控 关系型数据库 应用服务中间件
|
12天前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
94 6
|
13天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
50 3
下一篇
无影云桌面