[image]

Linux: как рекурсивно переместить каталог?

 
+
-
edit
 

Balancer

администратор
★★★★★
Глупый вопрос, но сабж? :)

Естественно, из консоли, mc не предлагать. У него идиотская фича удалять переносимые файлы только после того, как весь процесс перемещения завершён. И при обрыве образуется каша из перемещённых и нет файлов...
   
BG Реконструктор #25.01.2005 17:14
+
-
edit
 
+
-
edit
 

Balancer

администратор
★★★★★
Я просто не верю, что в Linux нет команды рекурсивного перемещения каталогов, этакого гибрида cp и mv :)
   
+
-
edit
 

ceci_

втянувшийся

Balancer> Я просто не верю, что в Linux нет команды рекурсивного перемещения каталогов, этакого гибрида cp и mv :) [»]

А почему mv не подходит ?
   
+
-
edit
 

Balancer

администратор
★★★★★
Понятия не имею :) Просто работает через раз... И/или перезаписывать при наличии одноимённых каталогов не может.

# mv -f /usr/portage /pub
mv: невозможно перезаписать каталог `/pub/portage'
...
mv -f /usr/portage/* /pub/portage/
mv: невозможно перезаписать каталог `/pub/portage/app-gnustep'
mv: невозможно перезаписать каталог `/pub/portage/app-i18n'
   
+
-
edit
 

ceci_

втянувшийся

Balancer> Понятия не имею :) Просто работает через раз... И/или перезаписывать при наличии одноимённых каталогов не может.
Balancer>

Balancer> # mv -f /usr/portage /pub
Balancer> mv: невозможно перезаписать каталог `/pub/portage'
Balancer> ...
Balancer> mv -f /usr/portage/* /pub/portage/
Balancer> mv: невозможно перезаписать каталог `/pub/portage/app-gnustep'
Balancer> mv: невозможно перезаписать каталог `/pub/portage/app-i18n'
Balancer> 
[»]


да не может перезаписьiвать директории, но можно легко сделать тоже, другим способом.
Первое что приходит в голову:
  1. cd /pub && tar -cv /usr/portage | tar -xv --strip-path=1 && rm -rf /usr/portage/*


P.S. Отловил баг /или фичу?/ :))) Если поставить в начале строки "#" то движок явно принимает е'то за коментарий и не показьiвает всю строку, если поставить какой нибудь символ /например пробел/ в начале - все нормально :)
   
+
-
edit
 

Balancer

администратор
★★★★★
ceci_> # cd /pub && tar -cv /usr/portage | tar -xv --strip-path=1 && rm -rf /usr/portage/*

Не... Это удаление гланд через анальное отверстие :D
Тем более, что это тоже не ренает моей проблемы - файлы не переносятся по одному, так что при каком-нибудь обломе (место, например, кончилось) придётся потом опять всё начинать. В таком случае мне проще из MC перекопировать :)

ceci_> P.S. Отловил баг /или фичу?/ :)))

Фича. # в начале строки - это комментарий :)
Вот до сих пор в раздумье, так и оставлять, или же сделать более стандартным для всяких Wiki - там # в начале строки обозначает элемент нумерованного списка :)
   
+
-
edit
 

ceci_

втянувшийся

ceci_>> # cd /pub && tar -cv /usr/portage | tar -xv --strip-path=1 && rm -rf /usr/portage/*
Balancer> Не... Это удаление гланд через анальное отверстие :D
Balancer> Тем более, что это тоже не ренает моей проблемы - файлы не переносятся по одному, так что при каком-нибудь обломе (место, например, кончилось) придётся потом опять всё начинать. В таком случае мне проще из MC перекопировать :)
ceci_>> P.S. Отловил баг /или фичу?/ :)))
Balancer> Фича. # в начале строки - это комментарий :)
Balancer> Вот до сих пор в раздумье, так и оставлять, или же сделать более стандартным для всяких Wiki - там # в начале строки обозначает элемент нумерованного списка :) [»]

Хмм тогда можно еще вариант :)))))))

#rsync -a /usr/portage /pub && rm -rf /usr/portage/*

   
+
-
edit
 

Balancer

администратор
★★★★★
Да нет, хочется, всё же, прямого решения.

Неужели не предусмотрели??
   
+
-
edit
 

ceci_

втянувшийся

Balancer> Да нет, хочется, всё же, прямого решения.
Balancer> Неужели не предусмотрели?? [»]

А что в е'том решении плохого ?
можно конечно ето все поставить в script

supermv:
#!/bin/sh

rsync -a $1 $2 && rm -rf $1
   
+
-
edit
 

Balancer

администратор
★★★★★
ceci_> rsync -a $1 $2 && rm -rf $1 [»]

Вот, опять. Всё перебросим, потом исходные файлы удалим. У меня места нет на такие извращения! :D

Нужно по одному файлу переносить! Как ещё под DOS было! :)
Перенёс файл - стёр. Перенёс - стёр...
   

ceci_

втянувшийся

ceci_>> rsync -a $1 $2 && rm -rf $1 [»]
Balancer> Вот, опять. Всё перебросим, потом исходные файлы удалим. У меня места нет на такие извращения! :D

Нет все таки е'тот подход правилнее ;-)

Balancer> Нужно по одному файлу переносить! Как ещё под DOS было! :)
Balancer> Перенёс файл - стёр. Перенёс - стёр... [»]

rm -rf /pub/portage && mv /usr/portage /pub
   
+
-
edit
 

Balancer

администратор
★★★★★
Ладно, это вопрос скорее теоретический уже снова. Т.к. в итоге домучался я с переносом из mc :)
   
+
-
edit
 

ceci_

втянувшийся

Balancer> Ладно, это вопрос скорее теоретический уже снова. Т.к. в итоге домучался я с переносом из mc :) [»]

Ром сегодня говорил с коллегами и правда стало интересно в какой ситуации может понадобится такое?

   
+
-
edit
 

Balancer

администратор
★★★★★
ceci_> Ром сегодня говорил с коллегами и правда стало интересно в какой ситуации может понадобится такое? [»]

Я же расписал выше ситуацию с переносом /usr/portage через постоянно рвущийся ssh :)
   

ceci_

втянувшийся

ceci_>> Ром сегодня говорил с коллегами и правда стало интересно в какой ситуации может понадобится такое? [»]
Balancer> Я же расписал выше ситуацию с переносом /usr/portage через постоянно рвущийся ssh :) [»]

Нет про ssh ничего не бьiло :) А так лучше через screen делать
А иначе я задумался потому что если обе директории на одном разделе - то все переносится мгновенно и файльi не перезаписьiваются, так чт о в е'том случае смъсла в бъстром стирании каждого файла нет, когда директории на разньiх разделах то директория цель должна иметь достаточно места чтобьi принять все файльi так что опять не случается ситуация в которой на одном разделе бьiло бьi две копии файлов.
Стою на моем варианте с rsync-ом так как при обрьiвании соединения с машиной, даже без использования screen все равно в следующий раз копирование продолжится там где оно бьiло прервано :)
   
+
-
edit
 

Balancer

администратор
★★★★★
Бывают случаи, когда места мало на обоих разделах :D

И нужно понемногу переносить. Часть файлов до упора с одного раздела на другой. Потом - часть файлов (из других каталогов) - наоборот. Потом продолжаешь первую операцию... :)
   
+
-
edit
 

ceci_

втянувшийся

Balancer> Бывают случаи, когда места мало на обоих разделах :D
Balancer> И нужно понемногу переносить. Часть файлов до упора с одного раздела на другой. Потом - часть файлов (из других каталогов) - наоборот. Потом продолжаешь первую операцию... :) [»]

:) Может бьiть, но тогда лучше сделать все маленькими порциями в ручную чтобьi не потерять чтото


P.S. Чтото разговорился я сегодня :)
   
+
-
edit
 

Balancer

администратор
★★★★★
ceci_> :) Может бьiть, но тогда лучше сделать все маленькими порциями в ручную чтобьi не потерять чтото

Все 100 тыс. с лишним файлов?? :D
   
+
-
edit
 

ceci_

втянувшийся

ceci_>> :) Может бьiть, но тогда лучше сделать все маленькими порциями в ручную чтобьi не потерять чтото
Balancer> Все 100 тыс. с лишним файлов?? :D [»]

100 000 файлов в одной директории ? :o
   
+
-
edit
 

Balancer

администратор
★★★★★
ceci_> 100 000 файлов в одной директории ? :o [»]

Нет, в 142-х директориях :)

Это портеж Gentoo :)
Все пакеты для emerge, разбитые по категориям.
   

в начало страницы | новое
 
Поиск
Настройки






Твиттер сайта
Статистика
Рейтинг@Mail.ru
АвиаТОП
 
Яндекс.Метрика
website counter
 
free counters