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

Последние несколько раз, когда я обновлял один из своих компьютеров с Debian, я делал это с xterm(, не считая своего VPS, поскольку у меня нет X на этом )без каких-либо проблем. Я не знаю Solus, но если процедура обновления и пакеты -сделаны хорошо, я не понимаю, почему это может вызвать проблемы.

1
29.03.2020, 17:51
3 ответа

Основываясь на вашем утверждении, что вы получаете сообщение об ошибке, что файл уже существует, у вас уже есть папки и файлы в разделе «toB»? Если вы в основном хотите объединить файлы из «fromA» в «toB», то вам, вероятно, лучше всего просто скопировать файлы рекурсивно (cp -ar ), а затем удалить «fromA».

В противном случае, если 'toB' изначально должно быть пустым, и вы просто хотите убедиться, что содержимое 'toB' такое же, как и 'fromA':

$ rm -rf toB
$ mv fromA toB
-1
28.04.2021, 23:20

Я рекомендую использоватьrsync

С помощью rsync вы можете указать, что вы хотите, чтобы файлы были удалены, и вы даже можете выполнить «пробный запуск», чтобы точно увидеть, что произойдет, если вы запустите его по-настоящему.

Попробуйте

rsync -av --dry-run --delete-before fromA toB

--Удалить -перед отлично подходит для объединения файлов в системах с недостаточным пространством. Если пробный прогон вас устраивает, удалите параметр --dry-run.

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

Если вы хотите удалить все файлы в месте назначения, не связанные с перемещением, вы можете использовать опцию --delete-excluded. Опять же, используйте --dry-run, чтобы проверить, что будет удалено перед запуском.

Существует --remove-source-files, который удалит исходные файлы во время передачи (, как mv ), но не удаляет каталоги. Таким образом, вам все равно придется удалить исходные каталоги с помощьюrm

1
28.04.2021, 23:20

info mvесть это:

   _Note_: 'mv' will only replace empty directories in the destination.
Conflicting populated directories are skipped with a diagnostic.

По-видимому, отменить это невозможно. Либо удалите B и переименуйте A (обратно в B ), либо сначала очистите/удалите каталоги в B вручную.

2
28.04.2021, 23:20

Теги

Похожие вопросы