Renomeando arquivos com a hora da última modificação no nome do arquivo

4

Estou tentando renomear um arquivo com o comando mv e gostaria de adicionar a data da última modificação deste arquivo (com o formato YYYYMMDD) no nome do arquivo e movê-lo para outra pasta. Eu tenho a data atual do sistema assim:

mv /home/user/Desktop/a.txt "/home/user/Desktop/testfolder/$(date +%Y%m%d)-a.txt"

Eu usei outras combinações de date , mas não entendi. Preciso saber se é possível fazê-lo diretamente pela linha de comando ou preciso criar um script.

    
por Theo Wilderbeek 01.01.2017 / 13:19

3 respostas

5

Você pode tentar este comando:

mv /dir_path/example.txt /new_dir_path/$(date +%Y-%m-%d -r example.txt)example.txt
    
por Rajesh Keladimath 01.01.2017 / 14:16
1

É provavelmente mais fácil corrigir as coisas com um pequeno arquivo de script.

-o -

Eu acho que você quer usar a data de modificação em vez da data atual, veja a saída de

ls -l a.txt

ou

ls -l --time-style=long-iso a.txt
    
por sudodus 01.01.2017 / 13:29
0

Obrigado, eu entendi! Apenas um detalhe. Se você está usando o comando de um caminho onde o arquivo original não está, você precisa usar isto:

mv / caminho_do_director / exemplo.txt / caminho_do_arquivo_devido / $ (data +% Y-% m-% d -r / caminho_do_diret/exemplo.txt) exemplo.txt

    
por Theo Wilderbeek 03.01.2017 / 09:36