Linux find 命令权限被拒绝
Posted
技术标签:
【中文标题】Linux find 命令权限被拒绝【英文标题】:Linux find command permission denied 【发布时间】:2016-09-26 09:36:44 【问题描述】:我想过滤掉不必要的信息“Permission denied”。
这些是命令“find -type f -name sources.list
”的输出
find: './run/lxcfs': Permission denied
find: './run/sudo': Permission denied
find: './run/lvm': Permission denied
find: './tmp/systemd-private-99eef94819d84080adc7df3e60efee5b-systemd-timesyncd.service-HE48k9': Permission denied
find: './lost+found': Permission denied
find: './dev/vboxusb': Permission denied
find: './root': Permission denied
./etc/apt/sources.list
find: './etc/sudoers.d': Permission denied
我尝试使用“! -readable -prune
”和上面的find
命令来抑制“权限被拒绝”信息,但它仍然不起作用。
【问题讨论】:
How can I exclude all "permission denied" messages from "find"?的可能重复 【参考方案1】:以下内容对我有用:
find / -mount -readable -name "<whatever>" -print
这里我只想搜索根文件系统,而不是下降到任何已挂载的文件系统。因此 -mount。
引发错误的问题文件不可读(产生“权限被拒绝”)。因此 - 可读。
其余的很明显。
(注意:在 Ubuntu 16.04 中,/var/lib/lxcfs 中的文件不可读,即使对于 root 也是如此。以上解决了我的问题。)
【讨论】:
【参考方案2】:这样的东西应该可以工作
find -type d ! -readable -prune -o -type f -name sources.list
【讨论】:
【参考方案3】:首先你可以在
的帮助下检查文件夹的ACLgetfacl -R /foldername
如果特定文件夹有读取权限,则运行;
find foldername -type f -name sources.list
否则 跳过命令
【讨论】:
【参考方案4】:试试下面的
find -type f -name sources.list 2>/dev/null
这将重定向stderr
输出流,用于报告所有错误,包括“访问被拒绝”错误,到空设备。
【讨论】:
非常感谢,不重定向流,是否可以绕过那些我没有读取权限的文件夹? 不确定,但是,afaik,不!以上是关于Linux find 命令权限被拒绝的主要内容,如果未能解决你的问题,请参考以下文章