Grep
如何從 Solaris 中的“查找”中排除所有“權限被拒絕”消息
您好之前關於此主題的問題包含 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$"