Mover arquivos modificados após uma data específica [duplicado]

1

Como você move arquivos modificados após uma data específica (por exemplo, 7 dias) para outro diretório? Eu desajeitadamente tentei enviar a saída de

ls -t | head -n XX

Mas aprendi recentemente que não é uma boa ideia analisar ls.

    
por Eweler 05.06.2015 / 06:46

1 resposta

9

Você está certo de que é melhor evitar a análise de ls . A solução abaixo usa find . Pelo contrário, trabalhará até mesmo com os nomes de arquivo mais difíceis.

Para mover todos os arquivos no diretório atual modificado há menos de 7 dias para /destination/path , use:

find . -mindepth 1 -maxdepth 1 -mtime -7  -exec mv -t /destination/path {} +

Como funciona

  • find . -mindepth 1 -maxdepth 1

    Isso encontra arquivos pertencentes ao diretório atual (mas não ao próprio diretório atual).

  • -mtime -7

    Isso diz a find para selecionar apenas arquivos menores que sete dias.

  • -exec mv -t /destination/path {} +

    Isso diz a find para executar o comando mv para mover esses arquivos para /destination/path

por 05.06.2015 / 07:07

Tags