【问题标题】:Zsh find permission denied - Application Saved StateZsh 发现权限被拒绝 - 应用程序保存状态
【发布时间】:2017-12-08 07:19:56
【问题描述】:

每当我在 zsh 中使用 find 命令时,如果我从用户级别运行它,它总是会输出特定的权限被拒绝消息(除了任何找到的路径)例如:

$ find "/Users/usr" -name "Python.gitignore"

/Users/usr/Dropbox/Programming/Git/gitignore/Python.gitignore
find: /Users/usr/Library/Saved Application State/com.bitrock.appinstaller.savedState: Permission denied

但如果它在 /Users/usr 的任何子目录上运行(Users/usr/Library 除外),它会按预期工作:

$ find "/Users/usr/Dropbox" -name "Python.gitignore"

/Users/vivekjha/Dropbox/Programming/Git/gitignore/Python.gitignore

什么是“已保存的应用程序状态”,在运行 find 时如何防止输出此错误消息?

【问题讨论】:

    标签: bash permissions find zsh


    【解决方案1】:

    如果要隐藏 find 命令的所有权限错误信息,可以直接将其 stderr 重定向到 /dev/null

    find "/Users/usr" -name "Python.gitignore" 2> /dev/null; 
    

    但是您可能会隐藏您想要的其他错误消息,因此您可以通过以下方式将其过滤掉:

     find "/Users/usr" -name "Python.gitignore" 2>&1 | grep -v ": Permission denied$"
    

    【讨论】:

      【解决方案2】:

      find 的替代方法是使用 zsh globbing。以下很可能会返回您想要的结果。

      $ print -l /Users/usr/**/Python.gitignore(N)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-25
        • 2021-01-25
        • 1970-01-01
        相关资源
        最近更新 更多