查找常规文件和目录


9

我如何分辨(如果可以分辨!)查找以查找目录和文件类型的文件?

find -type fd

就像这里的启发式黑暗时代一样。

Answers:


12

这是您可以使用的命令:

find -type f -or -type d

7
find -type f -o -type d用于POSIX兼容替代品。
manatwork 2012年

嘿,我在运行$ find时遇到了一些麻烦。-type d-或-type f-和-iname“ vision”并没有完全符合我的期望,我是否还缺少其他东西!
MageProspero 2012年

2
-a的优先级高于-o,请使用括号(但将其转为外壳)。无需使用非标准的-or或-and。
斯特凡Chazelas

如果我尝试`查找。-type d或-type f -name'abc' . I get an error.. 查找:路径必须位于expression:`之前。知道为什么吗?
alpha_989 '18

1
@ alpha_989 -之前不见了or
Mateusz Piotrowski

2

tl:dr

采用 find . -name "*string*" -type f -o -name "*string*" -type d

说明

-o命令or将参数完全放在文件路径之后,以便进行find . -name "*string*" -type f -o -type d计算find . (-name "*string*" -type f) -o (-type d)。因此,您必须指定

大多数用户会想要看起来像

find . -name  "*string*" -type f -o -name "*string*" -type d

计算为

find . (-name  "*string*" -type f) -o (-name "*string*" -type d)

查找语法详细信息

-name "*string*"搜索其中包含字符串的名称string


1

如果您使用的是GNU find,那么以下解决方案可能适合您:

find -type d,f

请参阅man find以获取更多详细信息:

要一次搜索多个类型,可以提供以逗号分隔的类型字母的组合列表,(GNU扩展名)。


2
使用的是GNU find4.7.0版本。它似乎不支持,。错误消息说find: Arguments to -type should contain only one letter.
alpha_989 '18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.