Um arquivo pode parecer modificado antes de ser criado? [duplicado]


9

É possível ter um arquivo com uma data modificada anterior à data de criação? Quais ações causariam esse evento?


7
Crie o arquivo Vire atrás do relógio. Modifique o arquivo Coloque o relógio novamente.
DavidPostill

@DavidPostill Observe que, pelo menos no Windows, alterar a hora do sistema requer privilégios administrativos, enquanto existem outras maneiras de criar horários de arquivo engraçados que não.
Ben N

Respostas:


8

Considere um arquivo .tar que é extraído. Normalmente, os arquivos extraídos terão um carimbo de data / hora da última modificação atribuído a partir do conteúdo do arquivo (o que normalmente ocorre no passado, a menos que você seja um viajante do tempo). No que diz respeito ao sistema de arquivos, esses arquivos foram criados.

Também existem utilitários para alterar o tempo de modificação dos arquivos existentes; no Linux, por exemplo, este é o comando touch .


E para um único arquivo, cp -pe as coisas que imitam-lo como rcp -pe scp -p, assim como rsynccom -tou -a, leva o modtime da fonte.
David_thompson_085

"hora da criação" é um termo do Windows e não * * nix. * O nix possui "tempo de mudança", o que é fácil de confundir com "tempo de criação", mas não é a mesma coisa.
plugwash

Aparentemente, o ext4 armazena um "tempo de nascimento" que é semelhante (mas não o mesmo que) ao "tempo de criação" do Windows, mas não há uma boa maneira de acessá-lo. unix.stackexchange.com/a/50184/122182
plugwash

8

Se você criar um arquivo a partir do zero, receberá um horário de criação de "agora" e uma data de modificação de "agora". Agora imagine copiar esse arquivo para outra unidade. O Windows manterá a hora da modificação, mas a hora de criação desse arquivo será definida para a hora em que você copiou o arquivo para essa unidade (ou seja, a hora em que o arquivo foi criado nessa unidade). Simples assim.

Na verdade, está correto:

  • A última vez que o conteúdo do arquivo foi alterado é armazenado no horário da modificação.
  • A hora em que o arquivo foi criado nesta mesma unidade é armazenada na hora da criação.

Esse comentário faz mais sentido, pois demonstra um cenário muito provável quando ocorrerá uma discrepância de data criada / modificada.
Shukri Adams 26/04

7

No Windows, é muito fácil definir (falsificar, se você desejar) os horários criados e modificados de um arquivo. Você não precisa alterar o relógio do computador; você nem precisa de acesso de administrador local. Tudo o que você precisa é de acesso de gravação ao arquivo em questão.

Para definir a hora de criação de um arquivo com o PowerShell usando SetCreationTime:

[System.IO.File]::SetCreationTime("C:\path\to\file.ext", (Get-Date "8/8/2088"))

Para definir a hora da última modificação usando SetLastWriteTime:

[System.IO.File]::SetLastWriteTime("C:\path\to\file.ext", (Get-Date "7/4/1776"))

No Linux, você pode facilmente alterar a hora da última modificação de um arquivo com o -dsinalizador de touch, como mostrado nesta resposta ao Ubuntu . Não há realmente uma noção de data de criação para arquivos em sistemas de arquivos Linux ( leia mais em Unix e Linux ).


3

Sim. No Windows, faça uma alteração no arquivo e salve-o. Agora copie o arquivo. Observando as propriedades da cópia, você verá uma data de modificação anterior.


1

O mais importante a ser observado aqui é que o tempo de modificação do arquivo não é realmente especial - ele é armazenado como qualquer outro dado. Não há como saber quando os dados foram realmente gravados ou lidos pela última vez.

A partir daqui, podemos ver que sempre é possível (excluindo a mídia de gravação única, como um CD) modificar diretamente os bits em uma unidade que armazena a hora da última modificação, ou mesmo a hora da criação.

Mais praticamente, isso também é possível a partir de sistemas operacionais comuns, como outras respostas observaram. No Windows, isso é fornecido pela SetFileTimefunção WinAPI , e você pode fazer isso utimeno Linux. Ferramentas como touchcompilação sobre essas APIs.

O uso legítimo mais comum para essas APIs é preservar o tempo de modificação, por exemplo, ao copiar arquivos, extraí-los de arquivos, etc.


0

Na minha experiência, foi quando um ou mais computadores foram usados ​​para modificar o arquivo e um deles tem a hora errada do sistema. As três causas mais comuns para o horário do sistema estar errado, em nenhuma ordem específica são:

  1. Nem todos os computadores estão configurados para mudar automaticamente para o horário de verão.
  2. As pessoas "acidentalmente" alteraram a hora do sistema em um computador.
  3. As pessoas "deliberadamente" mudaram a hora do sistema em um computador como uma piada.
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.