Noções básicas sobre timestamps de arquivos do Linux: mtime, ctime e atime

Noções básicas sobre timestamps de arquivos do Linux: mtime, ctime e atime

O sistema operacional Linux mantém registro de três carimbos de data / hora para cada arquivo em seu sistema. Esses carimbos de data / hora permitem que você descubra quando um arquivo foi atualizado pela última vez. Mas o que todos eles significam? E como você descobre esses tempos para um arquivo? Existe alguma diferença quando se trata de diretórios?





Uma compreensão de atime, ctime e mtime pode responder a todas essas perguntas. Estes são os três registros de data e hora que os sistemas de arquivos Unix rastreiam. Se você precisar descobrir detalhes sobre o que mudou e quando, continue lendo.





Quais são os três carimbos de data / hora do Unix?

Cada arquivo possui três carimbos de data / hora associados a ele. Linux os armazena no Formato de hora Unix que mede os segundos desde a época. Os três carimbos de data / hora são comumente chamados de atime, ctime e mtime.





o mtime é o mais comum e frequentemente o mais útil. Ele significa tempo modificado . É a hora em que o conteúdo do arquivo foi gravado pela última vez no disco.

Um pouco diferente é o ctime que significa hora de mudança . Este carimbo de data / hora rastreia alterações de metadados, como propriedade e permissões. Inclui renomear um arquivo - pelo menos, em sistemas operacionais Linux modernos típicos. Mas também é atualizado quando o conteúdo do arquivo muda, por isso está sempre tão atualizado quanto o mtime.



O terceiro carimbo de data / hora é o um tempo , que armazena a última vez que alguém acessou o arquivo.

quando uma cpu está muito quente

Como os carimbos de data / hora se aplicam aos diretórios

Um diretório Linux é, essencialmente, uma lista dos arquivos nesse diretório. Portanto, criar um arquivo dentro de um diretório atualizará o mtime desse diretório. Listar os arquivos no diretório, usando o ls comando, por exemplo, atualiza seu tempo de acesso. E, como acontece com um arquivo, alterar as permissões ou o nome de um diretório atualiza seu ctime.





E quanto ao tempo de criação?

Você pode ficar surpreso ao saber que o Linux simplesmente não controla o tempo de criação. Você pode inicialmente supor que ctime significa tempo de criação. Da mesma forma, você pode pensar nisso como algo muito útil para ser descoberto.

Muitos aplicativos salvam arquivos criando-os sempre do zero. Isso tornaria o uso de um tempo de criação enganoso.





Como visualizar os diferentes carimbos de data / hora

A maneira mais simples de obter informações de carimbo de data / hora é com a ls comando . O formato longo padrão mostra detalhes para o mtime:

$ date
Sat Mar 6 16:57:01 GMT 2021
$ echo 'hello, world' > tmp
$ ls -l tmp.txt
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp

Você pode exibir o atime em vez de usar o -você bandeira:

$ date
Sat Mar 6 16:59:33 GMT 2021
$ cat tmp
hello, world
$ ls -lu tmp
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:59 tmp
$ ls -l tmp
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp

A última linha confirma que o mtime deste arquivo é diferente do atime. Finalmente, use o -c sinalize para visualizar ctime:

$ date
Sat Mar 6 17:02:34 GMT 2021
$ mv tmp tmp2
$ ls -lc tmp2
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 17:02 tmp2
$ ls -l tmp2
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp2
$ ls -lu tmp2
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:59 tmp2

Desta vez, confirmamos que todas as três vezes são distintas e corretas: modificamos, acessamos e, em seguida, alteramos o arquivo, nessa ordem.

Uma alternativa para ls é o Estado comando. Este comando exibe detalhes de baixo nível do inode do arquivo. Isso torna mais fácil verificar todas as três vezes ao mesmo tempo. Também contorna o problema do não-intuitivo -você bandeira. Aqui está um exemplo de saída para o mesmo arquivo:

$ stat tmp2
File: `tmp2'
Size: 13 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 327688 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ ubuntu) Gid: ( 1000/ ubuntu)
Access: 2021-03-06 16:59:45.000000000 +0000
Modify: 2021-03-06 16:57:59.000000000 +0000
Change: 2021-03-06 17:02:43.000000000 +0000

Como atualizar carimbos de data / hora

o tocar comando altera os tempos de modificação e acesso de um arquivo. É também uma maneira conveniente de criar um arquivo vazio, o que acontecerá se o arquivo ainda não existir:

como mudar o nome no uplay
touch tmp

Por padrão, ele definirá mtime e atime para a hora atual. Você pode definir um horário diferente com o -t bandeira:

touch -t 202103061200 tmp

Você também pode definir apenas mtime ou atime com o -m e -para sinalizadores respectivamente:

touch -t 202103061300 -m tmp

Observe que o ctime sempre é atualizado quando configuramos o atime ou mtime.

Como encontrar arquivos com base em carimbos de data / hora

o achar comando é outra ferramenta que atua em carimbos de data / hora. Ele pode filtrar arquivos com base em atime, ctime ou mtime. Por exemplo:

find . -amin 15

encontrará arquivos acessados ​​exatamente 15 minutos atrás, enquanto:

find . -mtime -2

encontrará arquivos modificados nos últimos dois dias.

O Linux mantém o controle de cada arquivo três vezes

O carimbo de data / hora do arquivo mais comumente referenciado é mtime. Esta é a data e hora que uma lista de arquivos mostra, por exemplo. Mas os outros dois carimbos de data / hora também podem ser úteis, desde que você entenda a que se referem. Em particular, lembre-se sempre de que ctime representa mudança tempo não criação Tempo.

Comandos como touch e stat são membros úteis da caixa de ferramentas da linha de comando do Linux. Esses comandos irão aprimorar seu fluxo de trabalho do Linux, permitindo que você crie novos arquivos rapidamente.

Compartilhado Compartilhado Tweet O email A folha de referências de comandos do Linux

Esta folha de dicas simples o ajudará a se familiarizar com o terminal de linha de comando do Linux em nenhum momento.

como reiniciar o mac quando congelado
Leia a seguir Tópicos relacionados
  • Linux
  • Gerenciamento de arquivos
  • Linux Distro
Sobre o autor Bobby Jack(58 artigos publicados)

Bobby é um entusiasta da tecnologia que trabalhou como desenvolvedor de software por quase duas décadas. Ele é apaixonado por jogos, trabalha como Editor de Críticas na Switch Player Magazine e está imerso em todos os aspectos da publicação online e desenvolvimento web.

Mais de Bobby Jack

Assine a nossa newsletter

Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!

Clique aqui para se inscrever