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 1Isso encontra arquivos pertencentes ao diretório atual (mas não ao próprio diretório atual).
-
-mtime -7Isso diz a
findpara selecionar apenas arquivos menores que sete dias. -
-exec mv -t /destination/path {} +Isso diz a
findpara executar o comandomvpara mover esses arquivos para/destination/path