Eu tentei usar o comando
ls --time=atime
estava trabalhando em um diretório, mas não estava trabalhando em outro diretório. Abri certos arquivos no vim, evince e outros aplicativos, mas após o tempo de acesso aos arquivos 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 há de errado aqui?
filesystems
files
ls
atime
xralf
fonte
fonte
vim file.txt
? Você sai do vim por:q
ou:wq
? Se você não escreve,vim
não modifica o tempo de acesso do arquivo - isso ocorre por design..jpg
extensão, ele não é alterado. Quando o abro no visualizador de imagens, ele também não é alterado. Eu preciso que o tempo de acesso seja alterado toda vez que o arquivo foi lido por algum aplicativo.Respostas:
Com as opções padrão de montagens, os tempos de acesso são tratados de uma maneira especial no linux:
A
relatime
opção de montagem tornou-se a opção padrão desde o kernel do Linux 2.6.30. Essa é a razão parals --time=atime
não listar o que você espera.Solução: Para usar um comportamento estrito (herdado) para atime, use a
strictatime
opção mount (por exemplo, in/etc/fstab
).Nota: Para desativar completamente as atualizações do atime, é possível usar
noatime
.fonte
strictatime
?relatime
preserva a compatibilidade para esses programas. De fato, muito poucos programas ainda dependem disso, e geralmente é seguro de usarnoatime
.strictatime
recurso como o teste hoje, mas se tornar o sistema lento, gostaria de definirstrictatime
apenas em alguns diretórios, se for possível.strictatime
que usaria esse diretório como ponto de montagem.Você pode desativar a gravação do tempo de acesso para alguns sistemas de arquivos (procure
noatime
em/etc/fstab
). Para testar isso, tentetouch -a file; ls -l --time=atime file
e repitatouch -a file; ls -l --time=atime file
para ver se ele muda.O
ls
comportamento é explicado porman ls
:ls -l --time=atime
mostra a hora de acesso na coluna data / hora. Para classificar por essa chave, você precisa usar--sort=time
também.Se você por "o horário 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 que o tempo de modificação (bastante comum).Observe que a listagem de arquivos não altera seu tempo de acesso - Os arquivos não são acessados
ls
apenas pelo cache do inode .fonte
ls -l --time=atime
a hora não é alterada (presumo que a coluna com hora é atime) e a ordem de classificação não é alterada, os arquivos com a última atime devem estar no início ou no final da lista (se eles foram acessados pela última vez )touch
els
? Eu editei a resposta para torná-la mais evidente.Também pode ser útil ao testar como esse para adicionar o
--full-time
sinalizador, parals
que você possa ver segundos e sub-segundos, para poder ver o efeito sem ser limitado por limites de minutos.fonte