使用locate仅查找包含字符串“foo”的目录

Tor*_*Tor 6 linux

是否可以使用该locate命令仅查找目录?换句话说,我想搜索一个目录,并排除任何不是目录的结果,例如文件或文件的符号链接。

虽然没有必要,但我希望解决方案也返回到其他目录的符号链接(但同样,不是文件)。

最后,我想排除 foo 中的目录,但有一个例外。如果 foo 的子目录包含名称包含 foo 的子目录,我希望它也被返回。

如果存在以下文件和目录...

/home/foo/
/home/foo/foo.txt
/home/foo/someotherdir/
/home/foo/someotherdir/food/
/food/
/var/www/foo -> /home/foo/
/var/www/food -> /home/food/index.html
Run Code Online (Sandbox Code Playgroud)

输出将仅包含...

/home/foo/
/home/foo/someotherdir/food/
/food/
/var/www/foo -> /home/foo/
Run Code Online (Sandbox Code Playgroud)

提前致谢。

编辑:谢谢您的回复。我非常慎重地将其命名为locate命令而不是find

ghm*_*014 6

也许有点棘手,但它来了:

locate foo | xargs file -NF '|' |grep '| directory' | sed 's/| directory//g'
Run Code Online (Sandbox Code Playgroud)

  • 有点难看,但比整个文件系统上的“find”更快:-) ***`重要警告:`*** 这只会在locate命令的数据库中查找内容(某些系统不以root身份运行“updatedb”,所以可能会有一些缺失的项目......) (2认同)