我正在尝试使用 locate 来查找系统上包含“Jaynes”一词的任何文件。不幸的是,有一个名为 Jaynes 的符号链接指向一个目录。我想从我的定位搜索中排除所有符号链接和目录。显然,我可以这样做,find
但速度较慢。
具体来说,这个命令在我的 bash 脚本中的输出
ls -al `/usr/bin/locate -i Jaynes`
是
-rw-r--r-- 1 simon simon 80 Aug 10 2016 /home/simon/LOCALSVN/ward/trunk/literature/Jaynes/JaynesBook.html
lrwxrwxrwx 1 simon simon 49 Oct 24 2016 /home/simon/research/Monash/Ward/literature/Jaynes -> /home/simon/LOCALSVN/ward/trunk/literature/Jaynes
/home/simon/LOCALSVN/ward/trunk/literature/Jaynes:
total 1352
drwxr-xr-x 2 simon simon 4096 Aug 10 2016 .
drwxr-xr-x 6 simon simon 4096 Oct 21 2016 ..
-rw-r--r-- 1 simon simon 80 Aug 10 2016 JaynesBook.html
我要做的是消除对符号链接(第二行)的引用以及符号链接后面的行,只留下第一行,这是一个真实的文件。
非常感谢您的任何建议
locate
本身没有过滤掉链接的选项(它只能跟随或不跟随链接。您可以使用其他东西过滤掉链接:将此保存在您的
.bashrc
; 然后在新的shell中,locate -i Jaynes
不会列出链接。