
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 de 'Criação', 'Adicionado', 'Modificado' e 'Última Abertura' para cada arquivo.
Examinando os vários tópicos, posso ver como obter os dados de criação/adicionamento/modificação usando os comandos 'ls' ou 'stat', mas não consigo ver nenhuma maneira de obter as informações da data da última abertura para todos os arquivos recursivamente.
Responder1
- 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 pertinentemente para MacOS, HFS+), e as versões modernas de ferramentas gostam
ls
estat
sabem como acessá-la:ls -U
,stat
usaB
(documentado nas páginas de manual). - Adicionado: Isso não existe por si só. Você pode usar a hora da última modificação do diretório que contém um arquivo para saber quando ocorreu a última modificação nesse diretório, ou seja, se um arquivo foi adicionado (criado ou movido), removido (excluído ou movido) ou renomeado. Mas você não sabe qual e só obtém informações sobre o evento mais recente.
- ModificadoeÚ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
usaa
em
(novamente, conforme documentado). Observe que, para salvar gravações em disco em cada acesso ao arquivo, o rastreamento do carimbo de data/hora do último acesso às vezes é desativado ou desativado condicionalmente.
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.
Responder2
Você pode usar ostat
comando para listar informações sobre um arquivo. Este comando pode listar todos os quatro carimbos de data/hora 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 (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, a atualização do seu tempo no momento da cópia depende de como a cópia é feita.%c
: o tempo de mudança do inode (ctime). Este tempo é atualizado sempre que algo acontece com o arquivo além de lê-lo: modificação, renomeação, movimentação, alteração de permissões, etc.%B
: a hora do nascimento (hora da criação). Normalmente, esse é o momento em que o arquivo foi criado ou baixado, embora em alguns aplicativos isso possa refletir a última vez que o arquivo foi salvo.
Você pode combiná-lo com ofind
comando para listar arquivos recursivamente. Por exemplo, para listar os carimbos de data e hora e os nomes de todos os arquivos regulares no diretório atual, você pode usar:
find . -type f -exec stat -f '%Sa %Sc %Sm %SB %N' {} \;