hosts
我正在尝试远程查找 Linux PC 上指定的所有文件。问题是有几乎几千个文件作为ghostscript
上层目录名称之一或作为目录名称的一部分,因此它返回所有这些目录。有没有办法定位hosts
但排除ghosts
?
答案1
您可以将输出传输到 grep -v 命令中以排除 Ghostscript
| grep -v "ghostscript"
答案2
当你locate hosts
这样做时,就像你做了一样locate '*hosts*'
(哪里*
也可以 match /
),这就是为什么你匹配得更多。您需要显式提供至少一个全局字符来覆盖这一点,因此请使用
locate '*/hosts'
如果您想要任何hosts
结尾带有 的文件,请使用*hosts
.如果您想要任何中间包含主机的文件,这取决于您的locate 版本。作为钢铁起子请注意,mlocate 需要-b
将模式仅应用于基本名称,因此您可以执行以下操作
locate -b '*hosts*'
通过 GNU 定位,您可以使用正则表达式
locate -r '[^/]*hosts[^/]*$'
答案3
使用
find /path/to/directory/ -type f -name "hosts" -not -path "*ghostscript*"