'ls' marcas de data e hora de saída diferentes para arquivos em / tmp versus no diretório inicial

1

Estou usando os servidores Linux da minha universidade (RHEL 7). Aqui está o acordo. Tem a ver com arquivos "ls" e "velhos".

Diretório principal:

$ touch -d '1918-11-11 11:00 GMT' wwi-armistice
$ touch now
$ sleep 1
$ touch now1
$ TZ=UTC0 ls -lt --full-time wwi-armistice now now1
-rw-r--r-- 1 tsai csugrad 0 2054-12-17 17:28:16.000000000 +0000 wwi-armistice
-rw-r--r-- 1 tsai csugrad 0 2018-05-04 22:07:10.743637000 +0000 now1
-rw-r--r-- 1 tsai csugrad 0 2018-05-04 22:06:59.992632000 +0000 now

diretório tmp:

$ tmp=$(mktemp -d)
$ cd $tmp
$ touch -d '1918-11-11 11:00 GMT' wwi-armistice
$ touch now
$ sleep 1
$ touch now1
$ TZ=UTC0 ls -lt --full-time wwi-armistice now now1
-rw-r--r-- 1 tsai csugrad 0 2018-05-04 23:04:27.031485854 +0000 now1
-rw-r--r-- 1 tsai csugrad 0 2018-05-04 23:04:22.907373125 +0000 now
-rw-r--r-- 1 tsai csugrad 0 1918-11-11 11:00:00.000000000 +0000 wwi-armistice

Eu sei que a razão pela qual a primeira saída mostra wwi-armistice em 2054 tem algo a ver com a conversão de 32 bits sem assinatura de 32 bits do tempo Unix. Se alguém pudesse confirmar isso e talvez explicar o porquê (algo de algo nfs?), Isso seria ótimo.

Minha segunda grande pergunta é: Por que quando eu faço este exemplo no diretório tmp, o wwi-armistice está listado corretamente?

Tenha em mente que eu realmente não sei nada sobre networking, então uma explicação básica seria útil.

    
por Winston Tsai 05.05.2018 / 01:09

1 resposta

1

Pode ser útil se você puder identificar os sistemas de arquivos e suas opções montadas em jogo aqui.

mount exibirá a hierarquia do sistema de arquivos e as opções de montagem.

stat -f --format="%T" $file imprimirá o tipo de sistema de arquivos do arquivo nomeado. Eu suspeito que os resultados serão diferentes para as versões / tmp do que aqueles em (presumivelmente) o seu diretório home.

Uma vez que você conhece o sistema de arquivos específico e suas opções montadas, você pode pesquisar suas limitações de timestamp, mas eu acho que você tem a essência: o primeiro sistema de arquivos não possui um intervalo numérico suficiente para representar o 1918 data, enquanto o segundo faz.

    
por 05.05.2018 / 05:15