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

locate命令用前必须执行updatedb。
find命令路径要写全,特别慢。
which只找可执行文件。
grep用于文本搜索,目录要写对。

记住:用locate前刷库,找文件给全路径。

linux下怎样搜索一个文件

find命令就是干这事的。
直接上例子。

你要找/etc下所有host开头的文件: bash find /etc -name "host"
找所有有SUID权限的文件: bash find / -perm -4 000
现在,重点来了。
你要找所有linuxprobe用户的文件,然后复制到/root/findresults。

命令是这样的: bash find / -user linuxprobe -exec cp -ar {} /root/findresults/ \;
你看懂{}这部分了吗?它是动态替换的。
每个匹配的文件都会替换一次。

先这样。

linux系统用grep命令搜索指定日期修改过的文件

哈,这俩命令确实是系统管理的得力助手,用得溜了效率杠杠的。

你看啊,grep 这货,核心是找文本内容对吧?就像你在一堆文档里找某个词,它靠正则表达式就行。
但它对文件啥时候改的、啥时候访问的,真没直接感觉。
你用 grep 去搜文件修改日期,那基本是行不通的,除非你先把日期相关的文本搞出来了再用 grep。

真正跟文件时间打交道,就该祭出 find 了。
这命令简直是干这个的。

比如你想找“最近一天内改过内容的文件”,就用 find / -mtime -1 这个 -mtime 就是看“修改时间”(就是文件内容被改动的时间)。
-1 就是“一天之内”。

还有那个 -atime,是看“访问时间”,也就是你最后一次打开这个文件读或写的时间。
find / -atime -2 就等于“4 8 小时之内有人访问过”。

-ctime 稍微有点绕,它是看“状态变更时间”,比如你改了文件属性、权限啥的,但没改文件内容本身,-ctime 也算改动了。
所以 find / -ctime -1 就是“一天内文件状态有过变化”。

-mmin 和 -amin 是更精细的,单位是“分钟”。
-mmin -5 就是“最后5 分钟文件内容被改过”。
-amin -1 0 就是“最后1 0分钟文件被访问过”。

这些参数前面加个 + 或者
很关键。
-n 就是在“现在往前数 n 天内”。
+n 就是在“现在往前数 n 天以前”。
比如 find / -mtime +7 就是“7 天以前修改过的文件”。

我之前在一个服务器上调试日志,想找“昨天修改过的重要配置文件”,直接用 find /path/to/configs -mtime -1 -type f 就搞定,瞬间定位到几个文件,省得一个个手动找。

不过要注意啊,用 find / 这种全盘搜索,如果文件特别多,那速度会慢得飞起。
生产环境里,最好还是指定更小的目录范围。

你看看,这些 find 的参数是不是挺实用的?掌握这几个,文件时间相关的查找基本就够用了。