Linux 中的搜索、查找

上周 在 Linux 系统上组织文档 需要搜索各种文件或内容
find命令 2 02 3 年 1 0 月 2 6 日 在 /data 目录中 使用查找。
-名称“报告.txt” 找到三个匹配的文件
locate 命令 2 02 3 年 1 0 月 2 6 日 搜索“.pdf”并使用 在数据库中 找到 1 5 个 .pdf 文件 但有.pdf文件没有更新
缺少命令 2 02 3 年 1 0 月 2 6 日 -i 减少 config.log 的使用 请输入/yaml 匹配不区分大小写 grep命令搜索两行内容 2 02 3 年 1 0 月 2 6 日 使用 grep -i "error" error.log。
反向匹配-v 显示没有错误的行 排除2 0行常规信息
搜索比搜索更快 不过更新速度比较慢 越少越容易沟通 grep 正则很强大
算了 这取决于你

如何使用find和locate 命令在Linux 中查找文件和目录?

嘿,说到 Linux 中的文件查找器,我有话要说。
当我在服务器上查找文件时,很头疼,但后来我慢慢发现了方法。

记得有一次,2 01 9 年夏天,服务器里有很多文件。
我想找到一个名为“backup_report.txt”的文件,我使用搜索命令来获取它。
当时我在终端输入了一系列命令:find / -type f -name "backup_report.txt"。
这个命令真的很强大,直接找到文件。

同样,在2 02 0年底,我需要找到一些一定大小的文件。
我使用了搜索命令的 -size 选项。
例如,要查找大于 2 GB 的文件,我使用以下命令:find / -type f -size +2 G。
这样我就在短时间内找到了我需要的文件。

但我也使用了locate命令。
那是2 02 1 年初,公司有一个新项目。
我需要快速找到一个文件,所以我使用了直接定位命令。
我记得输入:locate“report.txt”。
这是非常快的,因为可以在几秒钟内找到该文件。

但是说实话,locate命令有一个缺点,就是数据库必须定期更新,否则你要找的东西可能是错误的。
之前我就忽略了这一点,在找文件的时候犯了一些错误。

总之,这两个东西各有优点。
search命令功能强大但速度慢,locate命令速度快但需要定期更新。
我通常根据自己的需要来选择。
例如,如果我想快速找到一个文件,我会使用“定位”,如果我需要精确找到它,我会使用“搜索”。
这样,工作效率就大大提高了。
哈哈,我告诉你这些只是为了让你少走弯路。

Linux命令查找文件或目录 find

这个东西在Linux下确实有效。
简单来说,就是在目录中查找文件或目录。
参数众多,可以与管道配合使用来执行复杂的操作。

先说一下基本格式:find [path] [options] [action]。
路径是你开始寻找的地方。
默认值为当前目录。
选项是搜索条件,例如文件名、时间、类型等。
操作包括对找到的结果执行某些操作,例如打印结果或执行命令。

主要有两个动作参数: -print是找到就打印。
这是默认操作。
-执行命令{};这是一个强有力的行动。
{} 是占位符,command 是您要运行的命令。
例如,rm {}可以删除找到的文件。
注意最后一个;是分隔符。

常用的搜索条件参数有以下几种: 按名称或类型搜索: -name "pattern" 按文件名搜索并支持通配符。
例如,.log 可以查找所有.log 文件。
-type [b/c/d/f/l/p] 按文件类型搜索。
例如,键入 f 搜索普通文件。

现在查找: mtime +/-n 按修改时间查找。
+n 为 n 天前,-n 为 n 天以内。
atime +/-n 按访问时间查找。
mmin n 以分钟为单位计算。
例如,mmin -1 5 将查找 1 5 分钟内修改过的文件。

按机构或所有者搜索: -username user 按所有者搜索。
-group groupname 按组搜索。
-prune 排除特定目录,应与其他条件结合使用。

按文件大小搜索: size +/size [c/k/M] 大于指定大小,其中 c 为字节,k 为 KB,M 为 MB。

其他参数: -empty 搜索空文件或目录。
-follow 遵循符号链接,默认情况下不遵循。
-最大深度级别限制搜索深度。
例如,最大深度 2 仅搜索当前目录和子目录。

高级用法: 使用正则表达式查找: 找到。
-name "[0-9 ]" -type f 将查找名称以数字开头的普通文件。

删除对应文件: 查找 /logs -type f -mtime +5 -exec rm {} ;将删除 /logs 中 5 天前的文件。
如果使用-ok,就会逐个确认,这样比较安全。
使用 xargs 来避免命令长度限制: 找到。
-名称“.tmp”-打印| xargs rm 将删除所有 .tmp 文件。

查找并处理文件内容: 找到。
-名称“.log”-打印| xargs grep "error" 将查找所有 .log 文件中包含“error”的所有行。

排除特定目录: find / -path "/proc" -prune -o -name ".conf" -print 可以排除/proc目录,只查找.conf文件。

额外的 xargs 功能: 当搜索结果太多时,-exec可能会溢出。
只需使用 xargs 来批量处理它们即可。
例如,查找/键入 f -print | xargs 文件可以对所有常见文件类型进行分类。

注意事项: 权限问题:搜索 / 等系统目录可能需要 sudo。
性能优化:不要盲目搜索根目录,先指定具体路径。
符号链接:默认情况下不遵循,必须使用 -follow 显式指定。

这样find命令的参数组合就有很多,从简单的文件查找到复杂的系统管理都可以使用。