Por que a classificação de arquivos pelo tempo de acesso não está funcionando?

13

Eu tentei usar o comando ls --time=atime

estava funcionando em um diretório, mas não estava funcionando em outro diretório. Eu abri certos arquivos no vim, evince e outras aplicações mas depois do os tempos de acesso ao arquivo de comando não foram alterados.

Quando digito touch file.txt , o tempo de acesso é alterado, mas quando digito vim file.txt , o tempo de acesso não é alterado.

O que está errado aqui?

    
por xralf 01.09.2011 / 10:56

3 respostas

14

Com as opções de montagens padrão, os horários de acesso são tratados de maneira especial no linux:

relatime – A filesystem mount with this option causes the access time to be updated if they are (before the update has occurred) earlier than the modification time. This significantly cuts down the writes caused by atime updates.

A opção de montagem relatime foi tornada a opção padrão desde kernel do linux 2.6.30. Essa é a razão pela qual ls --time=atime não listou o que você espera.

Solução: Para usar um comportamento restrito (legado) para o atime, use a opção de montagem strictatime (por exemplo, em /etc/fstab ).

Observação: Para desativar completamente as atualizações do atime, é possível usar noatime .

    
por 13.09.2011 / 23:19
2

Você pode desativar o registro de tempo de acesso para alguns sistemas de arquivos (procure noatime in /etc/fstab ). Para testar isso, você pode tentar touch -a file; ls -l --time=atime file e, em seguida, repetir touch -a file; ls -l --time=atime file para ver se ele muda.

O comportamento ls é explicado por man ls : ls -l --time=atime mostra o tempo de acesso na coluna de data / hora. Para classificar por essa chave, você precisa usar --sort=time também.

Se você "pelo tempo não for alterado" significa que ele mostra o mesmo resultado, ou porque o atime está desativado para o sistema de arquivos (consulte /etc/fstab ) ou porque o tempo de acesso é realmente o mesmo da modificação tempo (bastante comum).

Note que lista arquivos não alteram seu tempo de acesso - Os arquivos não são acessados por ls , somente o cache de inode .

    
por 01.09.2011 / 11:06
1

Também pode ser útil, ao testar assim, adicionar o --full-time flag a ls para que você veja segundos e sub-segundos, de modo que possa ver o efeito sem ser limitado por limites de minutos.

    
por 04.11.2011 / 21:34