查找。-name“foo”|更多不起作用

查找。-name“foo”|更多不起作用

我是 Unix 新手。我正在使用 find,但由于它列出了权限被拒绝的文件夹,所以我得到的结果太多,屏幕无法容纳。我尝试将其传输到 more,但似乎没有任何效果。因此,我有两个问题:

  1. 我如何过滤掉我无权访问的文件夹?
  2. 我如何对查找结果进行分页 - 我无法使其与更多结果一起工作。

谢谢

答案1

为了抑制权限被拒绝错误,请添加到语句2>/dev/null末尾find

答案2

尝试(如果您使用 sh、bash):

find . -name "foo" 2>&1 | more 

答案3

我不确定为什么将它通过管道传输到 more 对你不起作用。但一个简单的解决方案是将输出重定向到文件,然后对其进行分页。以下将重定向标准输出到一个文件,然后标准误差将保持默认,即在屏幕上显示错误:

find . -iname '*something*' > myfile.out
more myfile.out

不过,您必须等待查找完成才能看到所有内容。如果您想完全摆脱这些错误消息,并且仍然保留非错误结果,请转到该文件:

find . -iname '*something*' > myfile.out 2> /dev/null

每次运行此命令时,myfile.out 都会被覆盖。此重定向是 shell 的标准配置,可以与大多数命令一起使用。这是关于重定向的一个小教程,值得学习。

其他示例:
使用 时2>&1,标准错误 (stderr) 被重定向到 stdout,因此两者最终都会通过管道传输到 more。使用 2> /dev/null 时,您会将它们发送到特殊设备,该设备基本上是一个黑洞(又名位桶)。使用 *nix,设备表示为文件。

相关内容