当我在终端上的find函数上指定用户时:为什么我必须在编写/示例之前编写一个-user?
示例:
find -user USERNAME不会做任何事,但是
find / -user USERNAME完全按照预期工作?
P.S:如果我一个接一个地使用两个函数:
find / -user USERNAME -group GROUPNAME它是否会找到既属于用户又属于组的文件,或者属于用户或组的文件?
我试着在文档中搜索答案,却找不到任何答案,在哪里可以找到这类问题的答案?
发布于 2016-08-31 23:05:06
考虑到您使用的是Linux,您可能使用GNU。提供了一个“。”(当前工作目录)如果没有给出显式目录参数。
find实用程序只显示它发现的内容(实际上没有告诉您它正在查找的位置),因此您可能没有注意到这一点。显然,USERNAME拥有的当前工作目录中(或下面)没有任何内容,但计算机上有。当您给它一个"/“作为参数时,find搜索整个计算机,从根级"/”开始。
关于
find / -user USERNAME -group GROUPNAMEfind对待它就像你说的
find / \( -user USERNAME -a -group GROUPNAME \)POSIX是这样解释的:
主语的连词;
AND运算符由两个主位并列或由可选的-a运算符显式表示。如果第一个表达式是假的,则不计算第二个表达式。
在你的指挥下,这些都是初选:
-user USERNAME
-group GROUPNAME进一步读:
发布于 2016-08-31 17:40:38
所以,语法是
find (starting directory) (actions and flags)
因此,您需要指定某个目录,即使它只是/目录。它不默认为/
find /starting_dir -size +500 -atime +20 -print
这将从starting_dir开始,并查找在过去20天中使用500个或更多块的所有文件。
https://unix.stackexchange.com/questions/307027
复制相似问题