sol*_*ish 9 command-line bash find
当我find用来查看目录中的所有 pdf 文件时/home,我看到的是access denied. 为了消除它们,我尝试过:
find /home -iname "*.pdf" | grep -v "access denied"
Run Code Online (Sandbox Code Playgroud)
然而,结果是一样的。我怎样才能摆脱这些线?
Zan*_*nna 19
您尝试的方法无效,因为access denied输出是错误并在 STDERR 上发送,而不是通过管道传输到grep.
您可以通过仅重定向 STDERR 来避免看到这些错误
find /home -iname "*.pdf" 2>/dev/null
Run Code Online (Sandbox Code Playgroud)
或者正如David Foerster 评论的那样,我们可以更简洁地关闭STDERR
find /home -iname "*.pdf" 2>&-
Run Code Online (Sandbox Code Playgroud)
但是,我怀疑您实际上只想搜索您的家而不是其他用户的,所以也许您真的想要
find ~ -iname "*.pdf"
Run Code Online (Sandbox Code Playgroud)
如果这引发错误,则您的本地配置中可能存在一些错误的所有权,您应该进行调查。
访问被拒绝可能打印在stderr而不是stdout。
尝试这个:
find /home -iname "*.pdf" 2>&1 | grep -v "access denied"
Run Code Online (Sandbox Code Playgroud)
该2>&1重定向从输出stderr到stdout,这样grep -v可以做自己的工作。(默认情况下,|只有管道stdout而不是stderr。)
| 归档时间: |
|
| 查看次数: |
2554 次 |
| 最近记录: |