getfacl
pode despejar ACLs recursivamente e tem uma opção --skip-base
para ignorar arquivos sem ACLs.
getfacl -R -s -p /directory | sed -n 's/^# file: //p'
Como posso encontrar todos os arquivos com algumas ACLs estendidas, ou seja, aquelas com pouco +
no final dos sinalizadores de permissão mostrados por ls -l
.
Não consegui encontrar um sinalizador correspondente para find
. Minha abordagem ingênua seria um find
combinado com ls -l
e grep
. Mas eu não acho isso legal.
Alguém tem uma ideia?
Eu encontrei este pesquisando o oposto; para encontrar arquivos sem conjunto de ACLs. Isto é o que eu acabei com (no caso de algum outro googler encontrá-lo)
ls --color=auto -lR | grep -v "\+ " | grep -v "^[.,a-z,1-9]" | grep -v "^$"
Aparentemente, o ls -R
é mais rápido que o find (eu tenho um arquivo kagillion e cada comando find está demorando 2 horas).
Versão Perl:
getfacl -R -p -s / | perl -wn -e ' if (/^# file/) { s|^# file: /||; print; }'