find
用于查找文件和目录的命令分别有 和 的参数-f
,-d
但我想避免在它们之间写两个find
命令 和&&
或||
。
我想在一个命令中查找文件或目录(无论有条件地找到哪个),可以进行“-d
或-f
”运算吗?
答案1
使用该-o
选项。
来自寻找手册页(在 OPERATORS 标题下):
expr1 -o expr2 Or; expr2 is not evaluated if expr1 is true.
答案2
如果您未指定-f
或-d
,find
则将显示所有类型的 inode(文件、目录、设备、链接等...)。如果您只想要文件和目录,则使用-o
,如果您要使用其他类型的条件,则可能使用转义括号。
例如,过去 2 天内修改/创建的所有文件、目录、链接等……:
find . -iname '*blah*' -mtime -2
与上面相同,但仅限于文件和目录(无符号链接、设备......)
find . -iname '*blah*' \( -type d -o -type f \) -mtime -2