Listar arquivos com timestamp desde a época

4

Eu basicamente quero combinar a saída de

find /

com a saída de:

find / | xargs -L1 stat -c%Z

O primeiro comando lista os arquivos no diretório / e o segundo lista o registro de data e hora de cada arquivo. Eu quero combinar estes dois que eu recebo o arquivo e o timestamp em um como, por exemplo:

/path/to/file 1501834915
    
por Gamer1120 04.08.2017 / 10:56

3 respostas

8

Se você tiver o GNU find, poderá fazê-lo totalmente usando find :

find / -printf '%p %C@\n'

Os especificadores de formato são:

     %p     File's name.
     %Ck    File's last status change time in the format specified by
            k, which is the same as for %A.
     %Ak    File's last access time in the  format  specified  by  k,
            which  is  either '@' or a directive for the C 'strftime'
            function.  The possible values for k  are  listed  below;
            some  of  them might not be available on all systems, due
             to differences in 'strftime' between systems.

             @      seconds  since  Jan.  1,  1970,  00:00  GMT,  with
                    fractional part.

Se você não quiser partes fracionárias, use s em vez de @ como o especificador de formato de hora. (Existem alguns sistemas sem s , mas Linux e * BSD / OSX têm s .)

find / -printf '%p %Cs\n'
    
por 04.08.2017 / 11:12
3

por que você não pergunta find a stat para você?

find / -exec stat -c'%n %Z' {} +

find irá executar stat de cada entrada (arquivo ou diretório).

    
por 04.08.2017 / 11:07
0

Eu resolvi usando

find / | while read filename
    do
    echo -n "$filename " && stat -c%Z $filename
done

mas não usarei esta solução, pois a resposta de Archemar parece mais agradável.

    
por 04.08.2017 / 11:47