Одна из ваших проблем заключается в том, что вы исключили двойные кавычки вокруг подстановки команд, поэтому выходные данные dateкоманды были разделены пробелами. См. Почему мой сценарий оболочки задыхается от пробелов или других специальных символов? Это действительная команда:
cp -a /home/bpacheco/Test1 "/home/bpacheco/Test2-$(date +"%m-%d-%y-%r")"
Если вы хотите добавить к исходному имени файла, вы должны иметь это в переменной.
source=/home/bpacheco/Test1
cp -a -- "$source" "$source-$(date +"%m-%d-%y-%r")"
Если вы используете bash, вы можете вместо этого использовать расширение скобки.
cp -a /home/bpacheco/Test1{,"-$(date +"%m-%d-%y-%r")"}
Если вы хотите скопировать файл в другой каталог и добавить метку времени к исходному имени файла, вы можете сделать это следующим образом - ${source##*/} расширить до значения sourceбез части до последнего /(удаляет самый длинный префикс, соответствующий шаблону). */):
source=/home/bpacheco/Test1
cp -a -- "$source" "/destination/directory/${source##*/}-$(date +"%m-%d-%y-%r")"
Если Test1это каталог, он копируется рекурсивно, и файлы внутри каталога сохраняют свое имя: только к каталогу верхнего уровня добавляется метка времени (например Test1/foo, копируется в Test1-05-10-15-07:19:42 PM). Если вы хотите добавить метку времени ко всем именам файлов, это другая проблема.
Выбранный вами формат меток времени - плохая идея: его трудно читать людям и трудно сортировать. Вы должны использовать формат, который легче читать и который можно легко отсортировать, то есть с частями в порядке убывания важности: год, месяц, день, час, минута, секунда и с разделением между частью даты и частью времени.
cp -a /home/bpacheco/Test1 "/home/bpacheco/Test2-$(date +"%Y%m%d-%H%M%S")"
cp -a /home/bpacheco/Test1 "/home/bpacheco/Test2-$(date +"%Y-%m-%dT%H%M%S%:z")"