在终端上:在函数中查找

在终端上:在函数中查找

当我在终端上的查找功能上指定用户时:为什么我必须/在编写 -user 示例之前编写 a ?

例子:

find -user USERNAME

不会做任何事

find / -user USERNAME

完全按照预期工作吗?

PS:如果我依次使用2个函数:

find / -user USERNAME -group GROUPNAME

它会找到同时属于用户和组的文件或属于用户或组的文件吗?

我尝试在文档中搜索答案,但找不到任何内容,在哪里可以找到此类问题的答案?

答案1

鉴于您使用的是 Linux,您可能会使用 GNU find。这提供了一个“.”。 (当前工作目录)如果没有给出明确的目录参数。

find实用程序仅显示其内容发现(实际上并没有告诉你它在哪里看着),所以你可能没有注意到这一点。显然,您当前的工作目录中(或之下)没有任何内容USERNAME,但是电脑上有。当你给它一个“/”作为参数时,find从根级别“/”开始搜索整个计算机。

关于

find / -user USERNAME -group GROUPNAME

find就像你说的那样对待它

find / \( -user USERNAME -a -group GROUPNAME \)

POSIX解释如下:

的连词初选;这AND运算符是由两个并置所暗示的初选或由可选运算符明确表示-a。如果第一个表达式为 false,则不应计算第二个表达式。

在你的命令中,这些是初选

-user USERNAME
-group GROUPNAME

进一步阅读:

答案2

所以,语法是

find (starting directory) (actions and flags)

因此,您需要指定某个目录,即使它只是/目录。它不默认为/

例子:

find /starting_dir -size +500 -atime +20 -print

这将从中开始starting_dir查找所有使用 500 个或更多块且在过去 20 天内未访问的文件

相关内容