Я предлагаю использовать find
. Следующая команда выберет и переместит все файлы.
find "$Dir" -newermt "1 Jen 2014" ! -newermt "1 Jen 2015" -exec cp {} $Dest \;
Еще несколько слов: в общем, есть много причин, по которым лучше не анализировать вывод ls, в основном из-за пробелов или специальных символов, которые в конечном итоге присутствуют в имени файла.
Выдержка из man find
, для использования опции -newerXY
-NewerXY ссылка
Сравнивает временную метку текущего файла со ссылкой. Ссылочным аргументом обычно является имя файла (и для сравнения используется одна из его временных меток), но это также может быть строка, описывающая абсолютное время. X и Y являются заполнителями для других букв, и эти буквы выбирают, какое время относится к тому, как ссылка используется для сравнения.
a The access time of the file reference
B The birth time of the file reference
c The inode status change time of reference
m The modification time of the file reference
t reference is interpreted directly as a time