找到特定目录并忽略其他目录

时间:2015-04-10 00:29:40

标签: linux find ignore

我需要在一台服务器上找到所有的iplanets,我正在考虑使用这个命令:

find / type d -name https-* |  uniq

但同时我需要忽略一些目录/文件。我一直在尝试使用!,但它并不总是有效。我有这样的命令:

find / type d -name https-* ! -name https-admserv* ! -name conf_bk* ! -name alias* ! -name *db* ! -name ClassCache* |  uniq

我需要忽略这一切。目录admservconf_bkaliastmp以及文件*.db* 基本上我需要找到这个:

/opt/mw/iplanet/https-daniel.com
/opt/https-daniel1.com
/apps/https-daniel2.com

我只需要找到目录名称。我怎么能忽略所有其他的东西呢? 感谢

1 个答案:

答案 0 :(得分:1)

使用-prune防止递归到目录:

find / \( -type d \( -name 'https-admserv*' -o -name 'conf_bk*' -o -name 'alias*' -o -name 'tmp' \) -prune -o -type d -name 'https-*' -print

无需忽略任何文件。您只选择https-*目录,因此忽略其他所有目录。

并且无需管道uniq,因为find永远不会产生重复。