Eu trabalho em testcase, cada um sendo um subdiretório de ~/test
. É conveniente ver quais foram os casos de teste 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 registro de data e hora 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?
Você terá que redefinir o registro de data e hora no diretório após remover os arquivos. Assumindo ferramentas GNU, algo assim deve funcionar:
Isso redefine os registros de data e hora de modificação (
mtime
) e 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 de alteração (ctime
) para a hora atual. Mudar octime
é inevitável, mas você provavelmente não se importa com isso ouatime
.O
touch
comando fornece a-r
opção que permite tocar em um arquivo com os mesmos carimbos de data/hora de um arquivo de referência. Como tal, você poderia fazer isso:Homem do Linux :
Homem Unix :
Aqui está a versão Python da excelente resposta de ikkachu :
https://gist.github.com/jaytaylor/ea1b6082ea5bcea7a6b65518d91238f5
Para obter soluções completas para mover ou excluir arquivos preservando o diretório pai mtime, consulte estes scripts python: https://gist.github.com/jaytaylor/e2e0b53baf224f4e973b252370499de7