Я перемещаю файлы на основании их расширения.
Следующее работает, как и ожидалось, когда есть файлы, соответствующие глобу;но когда нет подходящих файлов, возвращается
'mv: переименовать /Users/xxx/Downloads/*.txt в /Volumes/Internal_HD/*.txt: такого файла каталога нет'
in_path=/Users/xxx/Downloads
out_path=/Volumes/Internal_HD
for f in "$in_path"/*.txt; do
mv -v "$f" "$out_path"
done;
['xxx' - это имя пользователя.]