
需求是查看或是查找目录下所有文件名包含特定字符的文件内容,比如:查看或者是查找 /var/log/ 目录下的所有 messages 开头的系统日志文件,在 centos 7 上执行 cat /var/log/messages* 或 grep 'test' /var/log/messages* 命令只检索 /var/log/messages-20000000 这样的文件却不检索 /var/log/messages 这个文件,是什么原因呢,我记得这个命令在其他系统上执行都是正常的,另外为了排除星号非空问题 我把文件名写成短一点的 /var/log/mess* 结果还是一样。
1 julyclyde 2023-01-10 12:43:18 +08:00 你那文件是压缩的吧? |
3 rrfeng 2023-01-10 13:12:22 +08:00 因为 /var/log/messages 里没有你要找的内容呗 |
4 killva4624 2023-01-10 13:19:10 +08:00 我觉得 3L 正解... |
5 acbot OP @rrfeng @killva4624 /var/log/messages 和 /var/log/messages-20000000 这样的文件都有要检索的内容,grep 'test' /var/log/messages 路径后面不带星都可以找到内容。 |
6 alexsz 2023-01-10 13:30:49 +08:00 这样呢,find /var/log -name "messages*" -type f|xargs grep 'test' |
7 v2wtf 2023-01-10 13:37:59 +08:00 grep -nir /var/log |
8 stein42 2023-01-10 13:40:11 +08:00 执行下这些命令看看问题出在哪一步 ls /var/log/messages* ls -hl /var/log/messages* grep 'test' /var/log/messages grep 'test' /var/log/messages /var/log/messages-20000000 grep 'test' /var/log/messages* 最好贴上你执行的命令和结果。 |
9 momocraft 2023-01-10 13:44:19 +08:00 贴一下你用的 shell ,和 set -o 命令的输出 |
14 killva4624 2023-01-10 15:07:32 +08:00 @acbot 排序问题是指? |
15 acbot OP @killva4624 cat 或 grep /var/log/messages* 那么有可能 /var/log/messages2 在前,也有可能 /var/log/messages1 那么内容打印的时候顺序就不一定,就出现了问题 |