您好之前关于此主题的问题包含适用于 Linux 的答案,但不适用于 Solaris 10。
find . ! -readable -prune
Run Code Online (Sandbox Code Playgroud)
在 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
Run Code Online (Sandbox Code Playgroud)
请注意,如果这是完整的 Solaris 安装,则 GNU grep 可在/usr/sfw/bin/ggrep
.