Bash: Как переместить файлы и каталоги из одного каталога в другой?

Bash: Как переместить файлы и каталоги из одного каталога в другой?

Я пытаюсь написать скрипт, который перемещает файлы и (под)каталоги из одного каталога в другой. Эта операция перемещения должна включать не только обычные файлы и каталоги, но и любые dot-файлы. Пока что я придумал следующее:

mv -f "$SOURCE_DIR"/.?? "$TARGET_DIR"
mv -f "$SOURCE_DIR"/.??* "$TARGET_DIR"
mv -f "$SOURCE_DIR"/* "$TARGET_DIR"

Однако эти команды не выполняются, если нет файлов, соответствующих шаблонам.

Мне нужно, чтобы эта операция по перемещению в любом случае прошла успешно.

  • независимо от имени файла
  • независимо от того, есть ли вообще какие-либо файлы
  • независимо от типа: файл, ссылка, каталог и т. д.

Но мне нужно, чтобы операция завершилась неудачей, если что-то пойдет не так (например, недостаточные привилегии в целевом каталоге и т. д.), поэтому простое игнорирование любых ошибок — не лучший вариант.

Как мне решить эту проблему? Думаю, есть очень простое решение, которое я упустил из виду.

Спасибо за помощь!

решение1

Вероятно, вы усложняете задачу больше, чем нужно.

mv $srcdir $destdir

Связанный контент