首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在终端:在功能中找到

在终端:在功能中找到
EN

Unix & Linux用户
提问于 2016-08-31 17:36:01
回答 2查看 201关注 0票数 0

当我在终端上的find函数上指定用户时:为什么我必须在编写/示例之前编写一个-user?

示例:

代码语言:javascript
复制
find -user USERNAME

不会做任何事,但是

代码语言:javascript
复制
find / -user USERNAME

完全按照预期工作?

P.S:如果我一个接一个地使用两个函数:

代码语言:javascript
复制
find / -user USERNAME -group GROUPNAME

它是否会找到既属于用户又属于组的文件,或者属于用户或组的文件?

我试着在文档中搜索答案,却找不到任何答案,在哪里可以找到这类问题的答案?

EN

回答 2

Unix & Linux用户

发布于 2016-08-31 23:05:06

考虑到您使用的是Linux,您可能使用GNU。提供了一个“。”(当前工作目录)如果没有给出显式目录参数。

find实用程序只显示它发现的内容(实际上没有告诉您它正在查找的位置),因此您可能没有注意到这一点。显然,USERNAME拥有的当前工作目录中(或下面)没有任何内容,但计算机上有。当您给它一个"/“作为参数时,find搜索整个计算机,从根级"/”开始。

关于

代码语言:javascript
复制
find / -user USERNAME -group GROUPNAME

find对待它就像你说的

代码语言:javascript
复制
find / \( -user USERNAME -a -group GROUPNAME \)

POSIX是这样解释的:

主语的连词;AND运算符由两个主位并列或由可选的-a运算符显式表示。如果第一个表达式是假的,则不计算第二个表达式。

在你的指挥下,这些都是初选:

代码语言:javascript
复制
-user USERNAME
-group GROUPNAME

进一步读:

票数 1
EN

Unix & Linux用户

发布于 2016-08-31 17:40:38

所以,语法是

find (starting directory) (actions and flags)

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

示例:

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

这将从starting_dir开始,并查找在过去20天中使用500个或更多块的所有文件。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/307027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档