linux查找文件||文件名的四种方法

我必须告诉你这件事。
当我第一次接触 Linux 时,搜索文件就像大海捞针一样。
这确实令人惊叹。
后来慢慢学习之后,我就想出了这些确实管用的技巧。

只需说“查找”即可。
那么这个东西就帮了很大的忙。
想想看,系统上有这么多文件,如果你想快速找到某个东西在哪里,只需搜索 Firefox,它很快就会出现。
为什么要快?因为它有一个数据库,专门存储这些文件的路径。
就好像您有一个指针,只需翻页即可。
然而,这个数据库并不是实时更新的。
您必须不时使用 sudo updateb 来更新它。
记得有一次忘记更新系统,正在寻找最近安装的软件,Locale直接说找不到,这让我很担心。
后来更新的时候哦,就出来了。
因此,在使用locate之前,首先要确认数据库是否是新的。

然后有一个发现。
这个技巧当时在服务器上经常使用。
当时有一个项目,正在找某个配置文件。
我不记得文件名,所以我使用 find/-name“config.dat”。
这次点击很慢,我不得不稍等一下。
为什么慢?由于它必须查看每个目录,因此它不如该数据库那么智能。
但这个发现很棒。
您可以随心所欲地搜索它。
您可以添加任何不区分大小写的内容、它属于哪个用户以及修改时间。
然后我添加了一个条件,将搜索限制为特定的用户目录,并且立即找到了该文件。
效率较慢但更准确。

这个东西旨在搜索已安装的命令。
然后我安装了新的软件,忘记了路径,所以我用新的命令直接自己打印路径。
就像如果你知道一个名字并想知道那个人住在哪里,只需询问邻居即可。
但它只能查找可执行文件,而不能查找文件或文档。
例如,如果你想找到.txt 文件,这没有帮助。

最后,还有 grep 或 ack 等文本搜索工具。
我都用它们。
想一想,有时候你记不住文件名,但记住里面有一个单词,比如 grep "error" /var/log/syslog,在 syslog 中查找包含“error”的行。
ack 比 grep 更专业,特别是对于代码搜索,并且效率更高。
我改代码的时候,找到了具体的函数定义,confirm函数的名字,分分钟就找到了。
这真的很容易。
不过,这两个人寻找的也是内容,而不是文件名。

所以你可以看看这四种技术中的哪一种:locate 速度快但需要更新,find 准确但速度慢并且只查找命令,grep/ack 扫描内容。
您必须决定使用什么以及何时使用它。
无论如何,我在这里已经十年了。

linux查找指定的文件

说白了,Linux中检查文件有两种方式:find灵活但速度慢,locate速度快但可能不准确。

我们先来谈谈最重要的搜索命令。
去年我们运行监控系统,发现一个日志文件时,发现使用find /var/log -name "error.log" 加通配符是非常高效的,特别是当文件名包含时间戳时。
另一个值得注意的点是权限问题。
例如,使用find ~ -name ".bash_history"检查主目录下的隐藏文件,如果报错,则需要添加sudo。
去年,一位新同事陷入了这种危险。
还有一个更重要的细节。
搜索大文件时,使用find / -size +1 G -type f 加时间参数 -mtime -7 可以节省大量时间。
不要愚蠢地扫描所有这些。

之前我以为检测应该比查找快,但是后来我发现这是错误的。
上次我在系统库中查找.so文件,使用'locate'可以在几秒钟内直接得到结果,但是'find plus -exec ls -l {} \;'通过使用。
确认路径正确。
等等,还有一件事,在你发现要检查的东西之前,不要忘记使用 sudo updateb 更新数据库。
我忘记了上次结果指向旧的安装包。

建议先尝试find,赶时间的话再使用locate,但不要完全依赖它。