众所周知,我们可以通过以下方式搜索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
这将以find
root 用户身份运行该命令。