A maneira mais rápida de obter a criação e os últimos tempos de modificação de muitos arquivos

1

Dado

  • um diretório
  • um padrão sh que produz um subconjunto de arquivos diretamente nesse diretório (como * .log)
  • um padrão sh que pode, dado um nome de arquivo,

qual é o caminho mais rápido (em ksh) para obter cada arquivo filtrado pelo padrão:

  • seu nome
  • a data e hora de sua última modificação (ou seja, texto anexado)
  • a data e a hora em que foi criado (supondo que ele tenha sido criado no diretório em que foi acessado)

Idealmente, funcionaria em ambos:

  • AIX 6100-04-03-1009
  • Linux 2.6.18
  • SunOS 5.10
por Pierre Gardin 11.07.2012 / 17:51

2 respostas

2

Um nó do sistema de arquivos Posix geralmente possui três atributos de tempo:

  • atime (tempo de acesso) - quando o arquivo foi lido pela última vez
  • mtime (tempo de modificação) - quando foi escrito pela última vez em.
  • ctime (tempo de alteração) - quando seu inode (metadados) foi alterado.

O atributo ctime é freqüentemente mal entendido como tempo de criação, e às vezes é, o que tende a confundir as pessoas.

Cascas POSIX não possuem uma maneira padrão de extrair esses três atributos, e você dependerá do comando ls . ls -l $file por padrão mostra o tempo de modificação.

  • ls -lc $file mostra ctime
  • ls -lu $file mostra atime

Recomenda-se usar ls --time-style=full-iso ou outro formato iso para saída consistente, se você estiver em um sistema GNU / linux.

Em Perl e em outras linguagens de script, é mais fácil stat() um arquivo e o acesso seus atributos. O Perl ainda tem os operadores -M , -A e -C que retornam mtime , atime e ctime para um objeto do sistema de arquivos. Observe o deslocamento de tempo, no entanto. O Perl tende a relatar tempos relativos ao horário de início do processo.

    
por 04.09.2012 / 14:04
0

Desculpas por não escrever o awk / sed para você, mas o comando stat fornecerá as horas acessadas, modificadas e alteradas. Será glob para você. Não tenho certeza se funciona no AIX, não tenho acesso a isso atualmente.

    
por 11.07.2012 / 18:09