如何只搜索目录?

如何只搜索目录?

众所周知,我们可以通过以下方式搜索Linux中的文件或目录:

find / -name theName

但显示了所有文件和目录,并且权限被拒绝,如下所示:

...
find: /Library/Caches/com.apple.iconservices.store: Permission denied
/Library/Python/2.7/site-packages/Django-1.11.2-py2.7.egg/django
/Library/Python/2.7/site-packages/Django-1.11.2-py2.7.egg/django/forms/jinja2/django
/Library/Python/2.7/site-packages/Django-1.11.2-py2.7.egg/django/forms/templates/django
find: /Library/SystemMigration/History/Migration-389D835B-414A-4D8D-A683-7407624E87E8/QuarantineRoot/System/Library/DirectoryServices/DefaultLocalDB/Default: Permission denied
find: /private/etc/cups/certs: Permission denied
find: /private/var/agentx: Permission denied
...

如果我只想显示命令找到的目录,该怎么办?

答案1

你应该使用

find / -type d -name theName

只查找名称为 的目录theName。如果没有,-type d您还将针对非目录的常规文件、套接字、命名管道等测试名称。

这仍然会给您带来相同的“权限被拒绝”错误,因为您没有足够的权限进入这些目录。

要忽略错误,只需2>/dev/null在命令末尾添加即可。这会将错误流重定向到/dev/null(它们将被丢弃)。

root 可能可以访问您无法进入的目录,因此如果您有sudo访问权限,您可以尝试

sudo find / -type d -name theName

这将以findroot 用户身份运行该命令。

相关内容