Grep

如何從 Solaris 中的“查找”中排除所有“權限被拒絕”消息

  • August 10, 2015

您好之前關於此主題的問題包含 Linux 的答案,但不適用於 Solaris 10。

find . ! -readable -prune

在 solaris 中不起作用,因為 -readable 不是 POSIX。

從 Solaris 中的“查找”中排除所有“權限被拒絕”消息的 POSIX 兼容命令是什麼?

正確答案:jlliagre 和 random832 給出了正確答案。

這是一種 POSIX 方法來修剪任何不可讀的目錄find

find . \( -exec sh -c ' if [ ! -r "$1" ] ; then { exit 1 ; } ; else for i in "$1"/* ; do if [ -d "$i" -a ! -r "$i" ]; then exit 1; fi; done; fi ' sh {} \; -o -prune \) -a -print

請注意,如果這是一個完整的 Solaris 安裝,GNU grep 在/usr/sfw/bin/ggrep.

只需將它們過濾掉。

find . 2>&1 | grep -v "^find: cannot read dir .*: Permission denied$"

引用自:https://unix.stackexchange.com/questions/222175