在linux中如何用命令查找文件在哪

说白了,查找Linux文件需要做三件事:连接、使用命令、查看结果。

首先让我告诉你最重要的事情。
您必须使用 SSH 连接到 Linux。
就像我们去年做的项目一样,仅使用 Xshell 是无法连接的。
我必须配对钥匙,这花了两个小时。
别笑。
有人试了3 天。
命令部分实际上非常简单。
只需几行即可找到一个文件,例如 find /home/httpd// -name "test.txt"。
如您所见,/home/httpd// 是路径,-name 是条件,“test.txt”是目标。
添加双引号以避免文件名包含特殊字符引起的错误。
起初我以为我可以随意写下路线,但后来我发现我错了。
您需要添加/。
否则系统会在当前目录下查找,要花半天时间才能找到该目录。
还有一个非常重要的细节。
例如,在3 000级别的虚拟机集群上搜索时,命令行长时间挂起。
为了提高效率,建议添加-type f过滤文件。
等等,还有一件事。
如果您没有足够的权限,find 命令将报告错误并要求您使用 sudo。
很多人不重视这一点。

提示:使用查找功能时请勿握手。
如果你写错了路径或者输入了错误的符号,系统会返回一整套“找不到文件”。
老实说,这很令人困惑。

Linux如何查找特定名称的文件? find命令精准定位文件位置

find 命令依赖这三项来直接查找文件:路径、状态和操作。

简单来说,路径就是你应该开始寻找的地方。
例如根目录为/,当前目录为。

这些术语是您过滤的方式。
常用的-name是精确匹配,-type看文件类型,-mtime看修改时间。

行动就是你所做的事情。
默认为输出路径。
添加 -exec 为每个文件运行命令。

上周我刚刚在做一个项目。
要查找特定的 .log 文件,只需使用 find/var/log-name ".log"。

如果权限不够,前面加sudo:sudofind /var/log-name".log"
想找文件,但大小写不确定? -iname 会做到的。
例如,查找/etc-iname“passwd”。

搜索太慢?直接设置范围。
find~/Documents-name"report.docx" 比从根目录查找要快。

-深度控制深度。
find.-maxdepth1 -name".sh" 只搜索当前目录。

权限问题直接给2 >/dev/null。
查找/名称“todo.txt”2 >/dev/null。

组合条件更加严峻。
例如,find.-typef-name ".conf" 将仅查找 .conf 文件。

想要查找过去 7 天内发生更改的 .py?找到〜/项目名称“.py”-mtime-7
-exec 最好,find/tmp-name"temp_"-execcp{}/backup;可以批量操作。

你自己想想,如何找到空文件? -type-empty 就可以了。

Linux命令查找文件或目录 find

说实话,当我第一次接触find命令时,我完全被它的参数搞糊涂了。
我记得我当时正在服务器上查找日志文件,经过一番尝试后,我终于发现添加 -typef 参数就足够了。
那一刻我才意识到这件事是多么的不可思议。
该命令的关键是了解如何对不同的参数进行分组。

我对使用-exec参数的感受特别深。
我曾经在简单的场景中使用-print,但是一旦我必须清理一批临时文件,我就使用-execrm{};我差点就把系统文件删了。
还好我记得用-ok提示符确认,不然我现在就得跪在键盘上了。
这让我意识到,越是强大的命令,就越要小心。
后来我学到了一个有趣的操作,使用xargs进行连接和搜索,特别适合处理大量文件。
例如,我之前使用find..tmp|xargsgreperror,能够一次定位到所有有问题的日志,效率要高得多。

我经常使用这个功能来按时间搜索。
比如我们运维端有一个规定,日志要保留3 0天,然后删除,所以我们写了一个定时任务:find/data/logs-mtime+3 0-execrm{};,每天都会自动运行。
但有一次我忘记编辑这个脚本,一周前的备份日志也被删除了,这很烦人。
因此,在使用mtime参数之前,首先要确认时间范围是否足够。

还有一点很容易被忽视的是-prune。
在之前的项目中,我想搜索用户主目录中的文件,但是我不小心找到了用户的隐藏目录。
后来我想到添加-prune来排除。
说白了,find命令就像一个侦探。
你需要给他足够的线索,他才能帮你找到目标。

不过说实话,一旦掌握了这个命令,确实还是蛮清爽的。
例如,我通常会检查某个进程生成的日志。
我只是使用 find/proc-regex"./[0-9 ]/task/[0-9 ]/fd"-typef-print|xargsls。
它可以直接列出所有相关文件,这比逐个搜索要高效得多。
当然,如果我过多地使用这个组合,同事们就会嘲笑我“发现了强迫症”。

Linux下的文件搜索、查找、查看

哎呀,说到Linux下的文件搜索和查看,这是我过去十年来在问答论坛上的专长。
好啦,我们就来说说这个话题吧。

首先不得不提一下Find命令,这是一个宝藏。
如果您想查找文件,无论是按名称、大小、所有者还是时间,“查找”都可以帮助您。
例如,如果要在/etc目录中查找以init结尾的文件,请使用find /etc -name init。
这里需要注意的是,-name 和 -iname 的区别在于,第一个区分大小写,而第二个则不区分大小写。

高级一点,如果要查找大于1 00M的文件,命令find/-size就变成+1 00M。
记住要匹配大小写字母,M 是兆字节,k 是千字节。
此外,找时间也很实用。
例如,如果要查找5 分钟内修改过的文件,请使用find /etc -cmin -5
接下来我们来说说locate命令。
它与搜索产品类似,但它是通过数据库进行搜索,因此速度更快。
如果要查找文件,直接查找文件名即可。
但是,除非使用 Updateddb 命令更新数据库,否则无法找到新文件。

我们来谈谈是哪一个、在哪里。
这两个命令可以帮助您找到命令所在的位置。
例如,如果您想知道 ls 命令在哪里,要使用哪个 ls。
whereis可以告诉你命令所在的目录以及帮助文档的路径。

然后是 Grep,它在搜索文件中的字符串时非常有用。
很强大。
例如,如果要在 /root/install.log 中查找包含 mysql 的行,请使用 grep 'mysql' /root/install.log。
请记住 -i 忽略大小写,而 -v 排除指定的字符串。

还有 wc 命令,它可以帮助您计算文件中的字符、行和字节。
如果想查看行数,加-l,字数-w,字节数-c。

最后是sort命令,这个东西可以帮助你对文件内容进行排序。
例如,如果您想按字母顺序对文件内容进行排序,只需执行 -b /path/to/file.txt 排序即可。

总之,find、locate、what、grep、wc 和 sort 命令可以帮助您在 Linux 下搜索、查找、查看和管理文件。
这是我多年实战所得的经验。
我希望它对你也有用。