procura arquivos usando permissão de grupo

2

Se eu precisar pesquisar arquivos usando permissão de grupo, use o seguinte comando

echo **/*(AIE)

onde o AIE significa leitura / gravação / execução.

Para permissões de proprietário e grupo, o qualificador usado é rwx e RWX, respectivamente.
Qual é a idéia por trás do uso da AIE?

    
por neeravkumar 15.09.2014 / 02:11

1 resposta

2

O argumento do comando do exemplo

echo **/*(AIE)

usa o sntax glob de zsh ;
Não funciona para bash , por exemplo.

Os caracteres no () são qualificadores glob; Múltiplos qualificadores são combinados pelo lógico AND - ou seja, todos eles devem ser aplicados.

Portanto, o comando acima mostra nomes de arquivos legíveis, graváveis e executáveis para o grupo. Eles têm as permissões definidas por chmod g+rwx .


Uma maneira mais portável de pesquisar arquivos por permissões é usar o -perm test de find , por exemplo:

find -perm -g=rwx 

Além de trabalhar independentemente do shell, a sintaxe também tende a ser mais legível.


De man zshall :

Glob Qualifiers
    Patterns used for filename generation  may  end  in  a  list  of  qualifiers
    enclosed in parentheses.  The qualifiers specify which filenames that other‐
    wise match the given pattern will be inserted in the argument list.

    If the option BARE_GLOB_QUAL is set, then a trailing set of parentheses con‐
    taining no '|' or '(' characters (or '~' if it is special) is taken as a set
    of glob qualifiers.  A glob subexpression that would normally  be  taken  as
    glob  qualifiers, for example '(^x)', can be forced to be treated as part of
    the glob pattern  by  doubling  the  parentheses,  in  this  case  producing
    '((^x))'.

    If  the  option EXTENDED_GLOB is set, a different syntax for glob qualifiers
    is available, namely '(#qx)' where x is any of the same glob qualifiers used
    in  the  other  format.   The qualifiers must still appear at the end of the
    pattern.  However, with this syntax multiple glob qualifiers may be  chained
    together.   They  are  treated  as  a  logical AND of the individual sets of
    flags. [...]

    [ ... ]

    A      group-readable files (0040)
    I      group-writable files (0020)
    E      group-executable files (0010)
    R      world-readable files (0004)
    W      world-writable files (0002)
    X      world-executable files (0001)

Veja man zshall | less '+/Glob Qualifiers' ou pinfo zsh

    
por 15.09.2014 / 02:25