Qual poderia ser o caso de uso de alterar o tempo modificado de um arquivo para o futuro?

5

Eu estava lendo a página man de ls no UNIX, especificamente no OS X Mavericks. Isso me intrigou:

If the modification time of the file is more than 6 months in the past or future, then the year of the last modification is displayed in place of the hour and minute fields.

Por que alguém definiria a hora da modificação para o futuro?

    
por conradkdotcom 26.11.2013 / 22:39

3 respostas

3

Tudo depende do ponto de referência. Talvez não seja o arquivo que tem um tempo de modificação no futuro, talvez seja o usuário olhando para o arquivo que está vivendo no passado?

Caso contrário, o sistema de arquivos pode ser usado para armazenar dados arbitrários, e os arquivos podem ter atributos arbitrários (por exemplo, com xattr no OS X), então talvez alguém queira armazenar dados do tipo calendário no sistema de arquivos e representar os eventos através do atributo de tempo de modificação?

    
por 26.11.2013 / 22:53
3

Os usuários podem definir livremente o horário de modificação de um arquivo para qualquer data (pelo menos dentro de um intervalo grande, geralmente de 1901 a 2038). Uma data no futuro pode ser devido ao capricho ou erro de digitação de um usuário. Uma data no futuro também pode ser o resultado da corrupção do sistema de arquivos.

No entanto, em praticamente todos os casos concretos, uma data no futuro é o resultado de um relógio configurado para a data errada, seja na máquina onde o arquivo foi gravado ou na máquina em que você está olhando o arquivo.

Em particular, é comum ver arquivos com a data de hoje em vez do tempo em redes em que os arquivos são compartilhados com protocolos como NFS ou Samba, mas os relógios não são sincronizados entre as máquinas. Se a data de um arquivo for igual a um segundo no futuro, ela será exibida no futuro.

    
por 28.11.2013 / 01:52
-1

Além de cnst answer, ter um tempo de modificação de arquivo no futuro é algo que pode acontecer quando um arquivo é armazenado em um compartilhamento de servidor de arquivos remoto por meio de NFS ou CIFS e os relógios cliente e servidor não são sincronizados por NTP ou deles tem o horário correto, mas o fuso horário errado.

Note também que este comportamento ls é específico do BSD / OS X e está quebrando o padrão POSIX. A maioria, se não todas as outras implementações Unix ls , exibe o ano em vez do tempo, se a hora da modificação do arquivo for, mesmo que leve, no futuro.

A página de manual do BSD / OS X ls que declara

Se a hora da modificação do arquivo tiver mais de 6 meses no passado ou no futuro

seria menos ambíguo se reformulado:

Se a hora da modificação do arquivo tiver passado mais de 6 meses ou estiver no futuro

    
por 27.11.2013 / 00:10