2014-09-12 2 views
0

В Linux, у меня есть папка, скажем ABC и в этой папке у меня есть вложенные папки A, B и CПеремещение каталогов без перезаписи файлов

Эти папки могут иметь файлы, например, папка A может быть, A1, A2, A3 и т.д.

Я хочу, чтобы переместить все эти папки в другую папку сказать A2Z

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

+0

Зачем закрывать? Если решение уже существует, вы можете направить меня к одному? – Angelo

+0

Этот ответ на SuperUser должен помочь вам http://superuser.com/questions/37137/moving-files-on-linux-appending-existing-directories-in-destination – LondonRob

ответ

1

Используйте интерактивный шаг, который делает обязательно подскажут вам в случае аналогичного файла/каталога в пункте назначения

mv --interactive 

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

for f in $(find /src/dir -type f); do target=/dest/dir/$(basename $f); if [[ ! -e $target ]]; then mkdir -p $(dirname $target);mv $f $target; fi; done 

Другим вариантом будет установить флаг --no-колошматить, который поднимет ошибку, если вы пытаетесь перезаписать существующий файл с перенаправлением вывода

1

this answer Согласно более на нашем дочернем сайте SuperUser вы можете сделать

rsync -av --remove-source-files src/ dest/ 

Обратите внимание, что я рекомендовал этот вопрос перенести туда, так что этот вопрос, и мой ответ, вскоре может исчезнуть!