Каталог mv, чтобы перезаписать другой

Я, возможно, схожу с ума здесь, но я пытаюсь переместить каталог в новое место, перезаписывая содержимое (в Linux, используя bash).

Каждый раз, когда я пытаюсь это сделать, он отвечает: "mv: не может переместить`./src 'в свой подкаталог "

например. Я имею:

/src
/new/dir/src
/$ mv src/ new/dir/

Если я удаляю каталог назначения, то это работает. Я знаю, что могу переместить содержимое исходного каталога, чтобы перезаписать место назначения, но я бы хотел использовать ту же команду, чтобы перезаписать место назначения, если оно уже существует, или переместить источник, если это не так.

1 ответ

Попробуйте указать абсолютный путь к каждому каталогу.

т.е. mv /src /new/dir/

Кроме того, вы можете посмотреть в rsync копировать файлы и удалять существующие файлы, и все такое.

Вы также можете сделать что-то вроде:

#!/bin/sh
if [ -e /new/dir/src/ ]; then
  rm -rf /new/dir/src/
fi
mv /src /new/dir/

если вы не заинтересованы в хранении файлов в /new/dir/src/, в таком случае rsync будет лучшим вариантом.

Другие вопросы по тегам