14

Как я могу найти все файлы с некоторыми расширенными списками ACL, т.е. те, которые имеют небольшой + в конце флагов разрешений, показанных ls -l .

Я не смог найти соответствующий флаг для find . Моим наивным подходом была бы find сочетании с ls -l и grep . Но я не думаю, что это хорошо.

У кого-нибудь есть идея?

3 ответа3

11

getfacl может рекурсивно создавать дампы ACL и имеет --skip-base для игнорирования файлов без ACL.

getfacl -R -s -p /directory | sed -n 's/^# file: //p'
0

Я нашел это прибегая к помощи противоположного; чтобы найти файлы без установленных ACL. Это то, что я закончил (на случай, если какой-то другой гуглер найдет это)

ls --color=auto -lR | grep -v "\+ " | grep -v "^[.,a-z,1-9]" | grep -v "^$"

По-видимому, ls -R быстрее, чем поиск (у меня есть файлы kagillion, и каждая команда поиска занимает у меня 2 часа).

0

Версия Perl:

getfacl -R -p -s  / | perl -wn -e ' if (/^# file/) { s|^# file: /||; print; }'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .