使用 find 命令搜索直到第一个匹配项

coo*_*ing 3 bash command find

我只需要搜索可以在任何地方的特定目录有没有办法运行此命令直到第一个匹配?谢谢!我现在使用

find / -noleaf -name 'experiment' -type d | wc -l
Run Code Online (Sandbox Code Playgroud)

Jam*_*at7 5

正如 Rudolf M\xc3\xbchlbauer 提到的,该-quit选项告诉find我们退出。手册页示例是
\n find /tmp/foo /tmp/bar -print -quit
\n将仅打印/tmp/foo.

\n

更一般地说,find对于您想做的事情来说,可能是错误的工具。看man locate。例如,在我的系统上,
\n locate experiment | head -3
\n 产生

\n
/usr/lib/tc/experimental.dist\n/usr/share/doc/xorg/reference/experimental.html\n/usr/share/doc/xorg/reference/experimental.txt\n
Run Code Online (Sandbox Code Playgroud)\n

whilelocate -r \'experimental..$\'产生(为简洁起见,剪掉了 6 行)

\n
/usr/src/linux-headers-3.2.0-24-generic/include/config/experimental.h\n (snip)\n/usr/src/linux-headers-3.2.0-32-generic/include/config/experimental.h\n
Run Code Online (Sandbox Code Playgroud)\n

正如 ShpielMeister 的评论中所述,locate数据库仅定期更新(例如,在 Ubuntu Linux 系统上每天更新)。当需要关注新文件时,例如sudo updatedb,在一两秒钟的时间内就会更新数据库。另请参阅:ioflood.com 关于locate 命令的博客

\n