1

Я просто хочу переместить режиссеров. Я последовательно просматривал mv, cp и rsync, так как у каждого инструмента, в свою очередь, не было возможности удалить каталоги из источника после их копирования. Например, mv нужны файлы, а не dirs, когда src и dst находятся на разных устройствах:

msgstr "перемещение между устройствами не удалось: src to dst; невозможно удалить цель: каталог"

Возможно, самый простой способ сделать это - использовать дополнительный cmd для удаления, хотя я бы предпочел не использовать его, поскольку это увеличивает риск потери данных.

2 ответа2

5

Как сказал Боб. К сожалению, я не могу (пока) комментировать, поэтому я должен разместить свои настройки здесь. Я бы предложил использовать слегка модифицированную версию команды Bobs:

cp -rp source-dir target-dir && rm -r source-dir;

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

1

На самом деле, mv может "перемещать" каталоги; но он не может перемещаться между устройствами или файловыми системами. Он работает очень быстро, потому что все, что он делает, это переопределяет указатель файла; сами контексты не копируются.

Итак, вам нужно две команды (скопировать, затем удалить). В моей системе Solaris я перемещаю каталоги с помощью этих двух команд:

cp -rp source-dir target-dir; rm -r source-dir;

См. Справочные страницы, чтобы убедиться, что вы используете правильный синтаксис для вашей среды и для обработки любых символических ссылок, которые могут существовать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .