我犯了一个错误,将相同的文件复制到不同的分区,并打算稍后从源或目标中修剪(删除)它们。locate
现在,当我尝试找到它们时,我从命令中得到了太多结果:
rick@alien:~$ locate "display-auto-brightness"
/etc/cron.d/display-auto-brightness
/home/rick/Pictures/display-auto-brightness conky.png
/home/rick/Pictures/display-auto-brightness systray.png
/home/rick/Pictures/display-auto-brightness-config 1.png
/home/rick/Pictures/ps display-auto-brightness.png
/lib/systemd/system-sleep/display-auto-brightness
/mnt/e/etc/cron.d/display-auto-brightness
/mnt/e/lib/systemd/system-sleep/display-auto-brightness
/mnt/e/usr/local/bin/display-auto-brightness
/usr/local/bin/display-auto-brightness
该locate
命令会自动将*
通配符放在搜索字符串之后并返回额外的不需要的结果。.png
不应退回文件。
为什么locate
返回太多结果?
这是 的默认行为
locate
。见man locate
:要仅匹配文件名,请在路径组件中显式设置一个 glob:
或者使用正则表达式和
--basename
匹配确切文件名的选项:或者,鉴于您显示的结果,您可以只询问
display-auto-brightness
最后包含的路径:我会让你在一个循环遍历目录中每个文件名的脚本中使用它。