【问题标题】:Linux find command permission deniedLinux find 命令权限被拒绝
【发布时间】: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 命令来抑制“权限被拒绝”信息,但它仍然不起作用。

【问题讨论】:

标签: shell 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】:

      首先你可以在

      的帮助下检查文件夹的ACL
      getfacl -R /foldername
      

      如果特定文件夹有读取权限,则运行;

      find foldername -type f -name sources.list
      

      否则 跳过命令

      【讨论】:

        【解决方案4】:

        试试下面的

        find -type f -name sources.list 2>/dev/null
        

        这将重定向stderr 输出流,用于报告所有错误,包括“访问被拒绝”错误,到空设备。

        【讨论】:

        • 非常感谢,不重定向流,是否可以绕过那些我没有读取权限的文件夹?
        • 不确定,但是,afaik,不!
        猜你喜欢
        • 2023-01-26
        • 2021-01-26
        • 2014-05-29
        • 2012-05-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-25
        相关资源
        最近更新 更多