如何在Linux命令行中查找文件?

哎呀,我们正在和您讨论这些 Linux 命令。
我确实体验过使用它们。

我告诉你,我曾经对服务器感到困惑,查找文件真的很头痛。
后来我慢慢摸索了这些指令,效率也提高了很多。

不得不说,这东西确实很强大。
记得有一次在某个项目中,发现/var/log下的所有日志文件都是三天前更改过的,并且大于5 0M。
只需使用 find /var/log -type f -size +5 0M -mtime -3 即可。
您想搜索一个名字吗?找到 /home/user -name "report.doc" 很简单。
是不是感觉像是一场意外?我只使用-iname。
这是一个多才多艺的发现。

谈论租房。
这很快,但请记住更新数据库。
我曾经在旧服务器上忘记更新 sudo。
结果,我找不到正确的文件,这很令人沮丧。
后来我想起来我已经更新了。
嘿嘿,速度真快啊。
没有 nginx.conf&它被破坏了。
当您大致知道文件名但记不起确切名称时,它非常适合。

常见的看法是grep。
这到底是什么?您将找到文本内容。
我经常发现先找到 .log 文件,然后使用 grep -r "error" /path/to/log 来搜索其中的错误信息很有用。
显示行号?只需添加 -n, grep -rn "error" /path/to/logs.只想查看您的文件名? grep -rl“错误”/路径/到/日志。
这个 grep 对于解决问题确实很有必要。

但是如果你问我,在一个大型服务器上,如果你想快速找出哪些单词包含某些单词,我必须确保找到下一个扩展名,然后进行搜索。
如果您需要查找准确的时间和大小,请使用“查找”。

想一想,上次我在系统盘上查找某个用户的巨大视频时,我发现使用 /mnt/data -type f -name ".mp4 " -size +1 G 可以直接定位到几百G的视频文件,无需一一猜测。
例如,如果系统报告错误,并且您想查看哪个配置文件包含 max_connections 设置,请查找 /etc -type f -name ".conf" -exec grep -l "max_connections" {}\;它会立即给你一个文档名称列表,这是非常高效的。

如果了解这些说明,可以节省大量工作。
了解如何为其融资非常重要。
请记住,要查找文件名,请使用 find;要快速查找整个文件,请使用locate;要查找文件内容,请使用 grep。

linux 能搜索文件夹名称吗?另外用ls 能显示3天前的文件吗?

哎呀,这个我真的有话要说。
刚接触Linux系统的时候,在命令行中搜索文件的时候,有一段时间很头疼。

你提到的find命令是个好东西。
我记得有一次,我需要找到一批三天前修改过的文件。
使用ls命令肯定不行,因为它只能显示最近三天的文件,并且没有关于文件修改时间的信息。
当时我正在学习如何查找,所以尝试使用它,发现居然可以找到三天前修改过的文件。

我尝试的是这个命令:find。
-输入 f -mtime +3 该命令的意思是在当前目录(.)及其所有子目录中搜索(-type f 指搜索文件,-mtime +3 指搜索三天前修改过的文件)。
该命令运行起来非常快,特别是当您有很多文件时。

与ls -lt一样,该命令也可以显示文件修改时间,但它只会显示当前目录下的文件,不包括子目录下的文件。
而且天数也不会像 find 那样准确。

说实话,我大部分时间还是用find来查找特定时间修改的文件,因为我认为它更灵活、更强大。
当然,我有时也会使用 ls -lt 来快速浏览最近修改过的文件,但这不能满足我准确查找特定时间文件的需求。

因此,如果您想查找三天前修改的文件,您应该始终使用 find 命令。
此外,该命令还有更多功能。
例如,您还可以使用它来搜索特定名称的文件、按大小对文件进行排序等,这真的很有趣。

linux中用什么命令可以查询出多少天之前修改过的文件呢?

说实话,如果你想查找具有特定日期的文件,将 ls -l 和 grep 一起使用是非常实用的。
我在做系统维护的时候,经常会遇到这样的请求。
例如,在您的示例中,如果您想在 /tmp 下查找 2 007 年 8 月 1 5 日修改的文件,任务非常简单:
有趣的是,ls -l 输出的日期格式固定为 YYYY-MM-DD,因此您必须记住它。
如果指定特定日期,例如 2 007 -08 -1 5 ,然后使用 grep 搜索,将显示所有匹配行。
我尝试了一下,结果中确实包含了virtual-youran.KVpFVO目录,并且修改时间为当天1 8 点1 7 分。
这证明该方法是正确的。

但是我们来谈谈细节,逐行 grep 匹配。
如果该日期的文档很多,搜索结果的数量可能会有点眼花缭乱。
处理这种情况时,我会首先使用 grep 过滤掉日期,然后使用 awk 或 cut 命令准确提取我需要的信息,例如仅查看文件名或权限。
只要能找到grep,就可以像以前一样使用了。

另外一个经验是,如果系统时间或者ls的显示方式发生变化,可能会导致日期格式不正确。
例如,某些系统可能有 MM-DD-YYYY,因此您需要相应地更改 grep 命令。
幸运的是,在Linux系统上,ls中的日期格式一般都是标准化的,不能做太大的改变。

还建议使用 /tmp 目录作为示例。
这个目录经常用来临时存放东西。
查找特定日期的修订记录是很常见的。
/var/log等其他目录中还会有更多文件。
如果不添加 | grep -v '...' 如果你想过滤掉垃圾信息,你就瞎了。

总的来说,这种方法非常方便,特别是对于初学者来说,可以快速了解如何在Linux文件系统中管理时间戳。
经过几次尝试后,您掌握了它的窍门,您可以直接在命令行中输入它。