MacOsx - Shell - lista todos os arquivos .php e suas permissões octal, dentro de uma pasta específica

1

é possível listar todos os arquivos ".php" localizados em um diretório e suas permissões octais?

Eu gostaria de listá-los assim:

775 /folder/file.php
644 /folder/asd/file2.php
etc...
    
por itsme 13.07.2013 / 10:44

2 respostas

2
find /folder -name '*.php' -type f -print0 |
  perl -0 -lne 'printf "%o %s\n", (lstat $_)[2]&07777, $_'

Veja também esta questão relacionada: Converta o formato de saída ls -l para o formato chmod .

-print0 é uma extensão GNU também suportada por BSDs como OS / X. O% GNUfind também possui um predicado -printf que poderia exibir o modo, mas esse não foi adicionado ao find do BSD.

(Testado em OS / X 10.8.4 e Debian 7, mas deve funcionar em qualquer sistema que tenha qualquer versão de perl e find -print0 , o que inclui todos os sistemas GNU e todos os BSDs recentes)

    
por 13.07.2013 / 12:15
1
find /some/path -type f -name "*.php" -exec sh -c 'stat -f "%p %N" "{}" | sed -E s/^.{3}//' \;

Isso é testado no OS X 10.8.4. O tubo sed apenas corta os 3 primeiros caracteres da saída (filetype). Parece que o OS X stat não suporta saída de permissão octal direta.

    
por 13.07.2013 / 12:19