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 comandomv
para mover esses arquivos para/destination/path