Eu instalei o Linux em fevereiro. Agora, quando listei o diretório home com ls -la
, por que o tempo está sendo mostrado assim:
drwx------ 20 chuck_user chuck_user 4096 Jul 5 2024 .
Por que o horário é Jul 5 2024
, e por que ele é diferente de outras datas?
A pergunta é diferente de O que 'ls -la' faz?
porque lá ela só perguntou sobre o que faz ls -la
. Mas eu quero saber o motivo pelo qual o timestamp do .
diretório não corresponde ao horário em que instalei o Linux. O timestamp é Jul 4 2024
ainda que eu tenha instalado em fevereiro de 2025.
O registro de data e hora de um diretório (neste caso
.
, que é o diretório atual) terá o registro de data e hora do último arquivo que foi alterado dentro daquele diretório.No caso do diretório inicial (
~
), se você não alterou nenhum arquivo, o registro de data e hora seria em algum momento no passado.No entanto, normalmente o arquivo
.bash_history
dentro dele~
muda cada vez que você executa um comando de terminal, então provavelmente o registro de data e hora do seu diretório inicial~
será atualizado na próxima vez que você fizer login (esse é o meu caso, pelo menos).O horário exibido
ls -l
não exibe a data de criação de um arquivo ou diretório, em vez disso, é exibido o horário da última modificação (mtime).Dê uma olhada na documentação :
Se você quiser ver o registro de data e hora da criação, você pode usar o
stat
comando -:A data listada por
ls
é especificamente o tempo de modificação, abreviado como 'mtime' em sistemas do tipo UNIX, como Linux, do arquivo ou diretório. Este timestamp é atualizado sempre que os dados do objeto do sistema de arquivos são modificados.Para um arquivo, o significado dessa declaração é relativamente óbvio: o mtime muda para a hora atual sempre que o arquivo é gravado.
Para um diretório, no entanto, o significado de 'dados' é um pouco menos óbvio. Os 'dados' de um diretório são o conjunto de entradas de diretório para esse diretório, que é funcionalmente uma lista dos objetos do sistema de arquivos (e seus nomes) que estão naquele diretório. Isso significa que criar, remover ou renomear um arquivo em um diretório atualizará o mtime do diretório (embora alterar permissões em tal arquivo não o faça, porque as permissões são parte do objeto do sistema de arquivos, não parte da entrada do diretório).
O tempo de 'criação' é um conceito diferente em sistemas do tipo UNIX, e é realmente um pouco complicado. Todos os sistemas de arquivos Linux fornecem dois timestamps adicionais além do mtime:
Além disso, alguns sistemas de arquivos fornecem um quarto registro de data e hora chamado de 'btime' ou 'birth time' do objeto do sistema de arquivos, e ele só é definido quando um objeto do sistema de arquivos é criado pela primeira vez. Essa é a coisa mais próxima que você pode chegar do tempo de criação de um objeto do sistema de arquivos, mas também se comporta de uma forma não óbvia por causa de como o próprio sistema funciona. Em particular, muitas coisas no Linux não reescrevem arquivos no local, em vez disso, elas escrevem um arquivo temporário com quaisquer alterações e, em seguida, o renomeiam sobre o arquivo existente (isso é feito para garantir que todas as alterações aconteçam ou nenhuma delas aconteça). No entanto, isso cria um novo objeto do sistema de arquivos que substitui o antigo, então não é incomum que o btime nos arquivos corresponda ao mtime.
Você quer dizer que está em
/home
, em vez de seu próprio diretório home de usuário, que está em home? O atalho para seu próprio diretório home de usuário é~
./home
geralmente só será atualizado quando você adicionar um novo usuário ao sistema, porque o conteúdo de/home
são apenas os diretórios de usuários. Então sua data de "5 de julho de 2024" é provavelmente quando seu download para a distro foi criado , pois/home
seria descompactado e instalado a partir daí.Eu entendo isso:
Cada diretório no Linux tem um pai
..
, e suas permissões no seu "home" parecem muito incomuns. Então suspeito que você não esteja mostrando toda a saída do seuls -la
aqui. Saída depwd
também seria útil.