Localizando listas de arquivos com permissões específicas

1

Eu examinei o comando find e inventei find . -maxdepth 1 -perm 521 > test.txt para gerar as permissões para um arquivo de texto, mas é possível fazer isso apenas usando, por exemplo, comandos simples como ls ? Até onde sei, ls parece não referenciar as permissões especificamente, por isso não posso dar a ele um determinado conjunto de permissões para procurar.

Existe algum outro método simples que eu esteja negligenciando?

    
por Adam 30.01.2013 / 22:21

3 respostas

1

Talvez você esteja pesquisando algo como:

ls -l | grep '^.r-x-w-r--'

IMHO, não há ferramenta melhor que find para pesquisar arquivos. É simples, direto e muito poderoso. Usando find ... -exec ... ou find ... -print0 | xargs -0 ... , você pode manipular facilmente, de várias maneiras, arquivos que encontrar. Eu não acho que você possa encontrar qualquer ferramenta de propósito geral melhor.

    
por 30.01.2013 / 23:00
0

Se você não gostar de find , poderá usar ferramentas padrão, como stat e awk , da seguinte maneira:

shopt -s dotglob
awk '/^521/ {print $2}' <(stat -c "%a %n" *) > test.txt

Você precisa definir a opção dotglob se os arquivos ocultos forem incluídos na expansão de * .

    
por 30.01.2013 / 23:12
0

find é o método direto. Se você usar zsh, você pode usar seu qualificador glob f (ou um bando de outros qualificadores para caracterizar bits de permissão individualmente).

echo *(f521)
    
por 01.02.2013 / 00:51