Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Рекурсивный перенос каталогов с содержимым  (Прочитано 2791 раз)

0 Пользователей и 1 Гость просматривают эту тему.

toZen

  • Гость
Re: Рекурсивный перенос каталогов с содержимым
« Ответ #15 : 13 Август 2016, 14:19:17 »
VecH, тогда я пас, мне не воспроизвести подобную проблему на просто буке с половиной Tb.
Но должен заметить, что первый раз с таким сталкиваюсь.

Оффлайн VecH

  • Автор темы
  • Любитель
  • *
  • Сообщений: 95
    • Просмотр профиля
Re: Рекурсивный перенос каталогов с содержимым
« Ответ #16 : 13 Август 2016, 14:33:41 »
Вчера вечером и сегодня гуглил, находил пару подобных случаев, но они без решения

toZen

  • Гость
Re: Рекурсивный перенос каталогов с содержимым
« Ответ #17 : 13 Август 2016, 14:39:05 »
VecH, можете привести линки?
Очень интересно.

Оффлайн VecH

  • Автор темы
  • Любитель
  • *
  • Сообщений: 95
    • Просмотр профиля
Re: Рекурсивный перенос каталогов с содержимым
« Ответ #18 : 13 Август 2016, 14:48:48 »
http://forums.balancer.ru/tech/forum/2005/01/t31416--linux-kak-rekursivno-peremestit-katalog.8274.html
второй линк на какой то английский сайт найти не могу, истории к сожалению нет, сидел с livecd

toZen

  • Гость
Re: Рекурсивный перенос каталогов с содержимым
« Ответ #19 : 13 Август 2016, 15:32:21 »
Подумалось, а если так?
mv /dir1/media/* /dir2/media/??

Оффлайн VecH

  • Автор темы
  • Любитель
  • *
  • Сообщений: 95
    • Просмотр профиля
Re: Рекурсивный перенос каталогов с содержимым
« Ответ #20 : 13 Август 2016, 15:34:40 »
Пробовал, и со зведочками, слэшами и без них, не срабатывало, следующая попытка только завтра
сейчас уже поздно, поставил винты на копирование, а это очень долго будет, минимум до утра

toZen

  • Гость
Re: Рекурсивный перенос каталогов с содержимым
« Ответ #21 : 13 Август 2016, 15:35:44 »
VecH, будем думать...))

toZen

  • Гость
Re: Рекурсивный перенос каталогов с содержимым
« Ответ #22 : 13 Август 2016, 15:38:41 »
VecH, кстати, а на что ругань шла когда да "не срабатывало"?

Оффлайн VecH

  • Автор темы
  • Любитель
  • *
  • Сообщений: 95
    • Просмотр профиля
Re: Рекурсивный перенос каталогов с содержимым
« Ответ #23 : 13 Август 2016, 15:47:52 »
На подобии вот такого:# mv -f vdb1/* ./
mv: невозможно переместить «vdb1/media» в «./media»: Каталог не пуст

toZen

  • Гость
Re: Рекурсивный перенос каталогов с содержимым
« Ответ #24 : 13 Август 2016, 15:54:35 »
VecH, ясно, разговор идёт об объединении директорий (merge).
В таком случае, я не знаю другого способа как только:
cp -pr /dir1/media/* /dir2/media/ ; эрэм эрэф /dir1/mediaВ принципе, это mc и делает.

Оффлайн VecH

  • Автор темы
  • Любитель
  • *
  • Сообщений: 95
    • Просмотр профиля
Re: Рекурсивный перенос каталогов с содержимым
« Ответ #25 : 13 Август 2016, 16:42:13 »
в том то и проблема что merge таким способом приводит к избыточному копированию

В моем случае только расшариванием samba для виндовой машины и там обычным Total Commander-ом это делалось за пару минут

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2628
    • Просмотр профиля
Re: Рекурсивный перенос каталогов с содержимым
« Ответ #26 : 14 Август 2016, 00:41:50 »
VecH, rsync наверняка умеет что тебе надо, покури ман.

Оффлайн VecH

  • Автор темы
  • Любитель
  • *
  • Сообщений: 95
    • Просмотр профиля
Re: Рекурсивный перенос каталогов с содержимым
« Ответ #27 : 14 Август 2016, 08:11:15 »
Цитировать
mv cannot merge or overwrite directories, it will fail with the message "mv: cannot move 'a' to 'b': Directory not empty", even when you're using the --force option.
You can however use rsync with the --remove-source-files option (and possibly others) to merge one directory into another.

rsync все равно проводит операцию копирования

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2628
    • Просмотр профиля
Re: Рекурсивный перенос каталогов с содержимым
« Ответ #28 : 14 Август 2016, 11:03:47 »
Вот:
Код рекусивно перемещает из SRC_DIR в DST_DIR только файлы отсутствующие в DST_DIR,
с созданием отсутствующих директорий содержащих перемещаемые файлы.
SRC_DIR=''; \
DST_DIR=''; \
IFS=$'\n'; \
for F in $(find "$SRC_DIR" -type f); \
do DEST_F="$DST_DIR${F#$SRC_DIR}"; \
DEST_D="${DEST_F%/*}"; \
[ -d "$DEST_D" ] || mkdir -p "$DEST_D"; \
mv -n "$F" "$DEST_F"; \
done
Пути к директориям SRC_DIR и DST_DIR указывать полные (от корня), слеш в конце не ставить.
Код как есть весь копируешь-вставляеш в терминал/консоль предварительно подставив пути в переменных к директориям.
Или одной строкой:
SRC_DIR=''; DST_DIR=''; IFS=$'\n'; for F in $(find "$SRC_DIR" -type f); do DEST_F="$DST_DIR${F#$SRC_DIR}"; DEST_D="${DEST_F%/*}"; [ -d "$DEST_D" ] || mkdir -p "$DEST_D"; mv -n "$F" "$DEST_F"; done
« Последнее редактирование: 14 Август 2016, 11:57:39 от renzrv »

Оффлайн VecH

  • Автор темы
  • Любитель
  • *
  • Сообщений: 95
    • Просмотр профиля
Re: Рекурсивный перенос каталогов с содержимым
« Ответ #29 : 15 Август 2016, 17:11:14 »
Мне проверить уже неначем, будем считать что скрипт рабочий и подойдет для решения моей задачи

 

Страница сгенерирована за 0.316 секунд. Запросов: 22.