Это учебное руководство объясняет во всех деталях, как установить полномочия файла в Linux (и поэтому также в Ubuntu) таким образом, что можно управлять доступом.
find
печатает ошибки к stderr
. Если Вы просто хотите проигнорировать их, самая простая вещь сделать:
find ... 2> /dev/null
find
также имеет -perm
опция отфильтровать на основе полномочий.
Можно сказать find
для поиска файлов с конкретными полномочиями но это не совсем, в чем Вы нуждаетесь здесь. Необходимо сказать find
не исследовать каталоги, которые у Вас нет разрешения пересечь. На самом деле легко сказать find
для не убывания в каталог — это -prune
основной — но нет никакого простого способа соответствовать каталогам, которые у Вас нет разрешения пересечь. В GNU find
, можно записать -readable -executable
, но стандарт find
не имеет такой опции (ни делает HP-UX find
).
Можно восстановить права доступа из полномочий, но это болезненно. И в системах, которые имеют ACLs (который делает HP-UX), необходимо принять их во внимание также.
find . -type d \
\! \( -user $(id -u) -perm -u+rx -o \
\( -group $(id -G | sed 's/ / -o -group /g') \) -perm -g+rx -o \
-perm -a+rx \) -prune -o \
-type f -size +100000000c -exec …
На практике, если это не важнейший сценарий, Вы, вероятно, хотите проигнорировать ошибки от find
. (И если это - важнейший сценарий, запишите это на некотором другом языке, который позволяет лучшую фильтрацию состояний ошибки, как Perl или Python.)