use*_*818 191 linux permissions find files
可能的重复:
如何从查找程序中删除“权限被拒绝”打印输出语句?
当我在 Linux (SuSE) 中运行此命令时:
find / -name ant
Run Code Online (Sandbox Code Playgroud)
我收到许多形式的错误消息:
find: `/etc/cups/ssl': Permission denied
Run Code Online (Sandbox Code Playgroud)
是否find需要跳过显示这些错误并仅尝试我有权访问的文件的参数?
Lev*_*von 248
您可以将消息过滤到stderr. 我更喜欢重定向他们stdout喜欢这个。
find / -name art 2>&1 | grep -v "Permission denied"
Run Code Online (Sandbox Code Playgroud)
说明:
简而言之,所有常规输出都转到标准输出 ( stdout)。标准错误 ( stderr) 的所有错误消息。
grep通常查找/打印指定的字符串,将其-v反转,因此它查找/打印每个不包含“权限被拒绝”的字符串。find 命令的所有输出,包括通常发送到stderr(文件描述符 2)的错误消息,现在转到stdout(文件描述符 1),然后由grep命令过滤。
这假设您正在使用bash/shshell。
在tcsh/csh你会使用
find / -name art |& grep ....
Run Code Online (Sandbox Code Playgroud)