linux - UNIX find 命令的奇怪行为

标签 linux unix terminal find

好吧,这可能很愚蠢,但这真的很烦人。

我最近遇到了 find 的问题,我无法弄清楚问题出在哪里。基本上,我试图找到 一个名为bin 的文件夹,我知道它必须位于另一个名为lib 的文件夹中。为此,我使用以下命令。

find * -type d -wholename "lib/bin"

这有效地找到了我正在寻找的文件夹,但前提是我位于包含 lib 的目录中。如果我向上移动一个目录,即

cd..

上面的相同命令将返回任何内容

我知道find会自动递归搜索,所以我不明白为什么在第二种情况下它找不到我的目录。有什么想法吗?

最佳答案

顾名思义,-wholepath 匹配元素的全名。有关 -path 选项的说明,请参阅 man find(这使得 -wholepath 已过时)。

你想要的是这样的:

find ./* -type d -path "*/lib/bin"

关于linux - UNIX find 命令的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26926916/

相关文章:

unix - 如何分隔由空格分隔的文本文件中的名称列表

c - semget : how to avoid concurrent access to semaphore group on its creating/initialization?

macos - 如何判断来自 "ls"的目录是否是符号链接(symbolic link)?

bash - 我如何检查是否没有给出参数

android -/proc/slabinfo 提供什么信息?

linux - (标准输入) 1 : syntax error

java - Linux串口通信使用java和RXTX lib

python - 从 zmq.error.ZMQError : Address already in use 恢复

linux - imagemagick RAW 文件识别/转换 - 没有这样的文件或目录(tmp 文件)

python - 从 python 脚本的多个终端窗口运行多个命令