Como eu crio uma lista do conteúdo do arquivo de um diretório e subdiretórios com a criação, adição, modificação e hora da última abertura de cada arquivo?

1

Eu tenho um Mac e preciso criar uma lista de todo o conteúdo do arquivo em um determinado diretório e seus subdiretórios, juntamente com as datas 'Creation', 'Added', 'Modified' e 'Last Opened' para cada arquivo.

Examinando os vários tópicos, posso ver como obter os dados de Criação / Adicionados / Modificados usando os comandos 'ls' ou 'stat', mas não consigo ver nenhuma maneira de obter as informações da Última data de entrada para todos os arquivos de forma recursiva.

    
por Freddy 20.05.2017 / 15:57

2 respostas

2

  • Criação : Embora não seja uma das propriedades de arquivo originais incluídas no UNIX, esta está disponível em muitos sistemas de arquivos hoje (incluindo, mais pertinente para MacOS, HFS +), e as versões modernas de ferramentas como ls e stat sabem como acessá-lo: ls -U , stat usa B (documentado nas páginas de manual).
  • Adicionado : isso não existe por si só. Você pode usar o horário da última modificação do diretório que contém um arquivo para saber quando a última modificação desse diretório aconteceu, ou que um arquivo foi adicionado (criado ou movido), removido (excluído ou movido) ou renomeado. Mas você não sabe qual e só recebe informações sobre o evento mais recente.
  • Modificado e Último acesso : Estas são estatísticas originais que estão disponíveis em arquivos no UNIX desde sempre. A maioria dos sistemas de arquivos e basicamente todas as ferramentas os suportam: ls -u , stat usa a e m (novamente, conforme documentado). Observe que, para salvar gravações de disco em todos os acessos a arquivos, o último rastreamento de registro de data e hora de acesso é, às vezes, desativado ou condicionalmente desativado.

Há outro que você não mencionou, que é última mudança de inode . Isso rastreia quando os metadados de um arquivo foram alterados pela última vez, em oposição ao conteúdo do arquivo.

    
por 20.05.2017 / 17:06
0

Você pode usar o stat comando para listar informações sobre um arquivo. Este comando pode listar todos os quatro timestamps que o sistema operacional registra para um arquivo:

  • %a : o tempo de acesso (atime). Esta é a última vez que o arquivo foi aberto ou lido de outra forma (por exemplo, para analisar ou indexar seu conteúdo).
  • %m : o tempo de modificação (mtime). Esta é a última vez que o conteúdo do arquivo foi modificado. Se o arquivo foi copiado ou baixado de outro lugar, se o seu mtime é atualizado no momento da cópia depende de como a cópia é feita.
  • %c : o tempo de troca de inode (ctime). Este tempo é atualizado sempre que algo acontecer ao arquivo diferente de lê-lo: modificar, renomear, mover, alterar permissões, etc.
  • %B : a hora de nascimento (tempo de criação). Normalmente, é a hora em que o arquivo foi criado ou baixado, embora, com alguns aplicativos, isso possa refletir a última vez em que o arquivo foi salvo.

Você pode combiná-lo com o find

find . -type f -exec stat -f '%Sa %Sc %Sm %SB %N' {} \;
    
por 22.05.2017 / 01:52

Tags