É possível executar ls ou encontrar e canalizar através de stat?

5

Existe uma maneira de executar ls ou encontrar para obter a lista de arquivos dentro de um diretório e, em seguida, executar stat para obter todas as informações específicas (ou seja, grupo de arquivos, nome do arquivo, proprietário do arquivo, tamanho do arquivo M, etc.) & Permissões? Eu estava tentando algo nos moldes de:

find .content/media -type f | stat
ls -l .content/media | stat

Resposta:

    find ./content/"subdirectory name"/ -type f -exec stat -c '%n : %U : %A : %G : %s' {} +
    
por lettda 17.04.2016 / 04:45

5 respostas

11

Use stat na ação -exec de find :

find .content/media/ -type f -exec stat -c '%n : %U : %G : %s' {} +

Altere as sequências de formato de stat para atender sua necessidade.

    
por 17.04.2016 / 05:17
12

Se você tiver o GNU find, você pode usar -printf :

find content/media/ -type f -printf '%p : %u : %g : %k'
    
por 17.04.2016 / 07:11
5

Jogue xargs na mistura. Por exemplo:

ls | xargs stat
    
por 17.04.2016 / 09:55
3

O que há de errado com um simples Bash for -loop?

for f in ./*
do
    stat "$f"
done

Com as aspas e o prefixo ./ , isso é seguro contra os piores nomes de arquivo.

    
por 17.04.2016 / 13:08
0
find .content/media -type f -exec stat -c '%n : %U : %G : %s : %x : %y : %z' {} +

%n     File name,
%U     User name of owner,
%G     Group name of owner,
%s     Total size, in bytes,
%x     Time of last access,
%y     Time of last modification,
%z     Time of last change.
    
por 17.04.2016 / 09:40

Tags