Como remover arquivos temporários sem alterar o registro de data e hora de modificação do diretório?

2

Eu trabalho no testcase, cada um sendo um subdiretório de ~/test . É conveniente ver quais foram os testcases em que trabalhei mais recentemente usando algo como ls -rtl . Agora eu gostaria de remover certos arquivos temporários dos diretórios de teste; infelizmente, isso mudaria o timestamp dos diretórios.

É possível remover um arquivo de um diretório sem alterar o registro de data e hora de modificação do diretório?

    
por Michael 22.05.2018 / 22:17

1 resposta

3

Você precisará redefinir o registro de data e hora no diretório após remover os arquivos. Assumindo as ferramentas GNU, algo assim deveria funcionar:

mtime=$(stat -c %y dir)            # get the timestamp, store in $mtime
rm dir/somefile dir/someotherfile  # do whatever you need
touch -d "$mtime" dir              # set the timestamp back

Isso redefine a modificação ( mtime ) e os registros de data e hora de acesso ( atime ) no diretório para o registro de data e hora de modificação original, mas também define o registro de data e hora da alteração ( ctime ) como a hora atual. Mudar o ctime é inevitável, mas você provavelmente não se importa ou atime .

    
por 22.05.2018 / 22:29