Как рекурсивно переместить все папки на один каталог вверх на один каталог

15

У меня есть папки в ландшафт / ландшафт, которые содержат папки, называемые ландшафтом и объектами. Эти папки имеют папки с файлами данных. Как переместить все содержимое пейзажа / ландшафта / [имя] / ландшафта в пейзаж / ландшафт, а содержимое пейзажа / ландшафта / [имя] / объекта в пейзаж / объекты?

Андрей Д.
источник

Ответы:

19

Для команды нет рекурсивного параметра mv, поэтому, если в каталогах, которые вы хотите переместить, есть каталоги, вам придется их использовать cp. Как насчет этого:

cp -R scenery/terrain/*/terrain/* scenery/terrain/
cp -R scenery/terrain/*/objects/* scenery/objects/

Тогда, когда вы уверены, что сработало:

rm -rf scenery/terrain/*/terrain
rm -rf scenery/terrain/*/objects
Райан
источник
Хороший вопрос, но я думаю, что под Mac OS это будет cp -R (верхний регистр R).
QSQ
@QSQ Спасибо за исправление. Исправлено сейчас.
Райан
-р работал нормально.
Андрей Д.
1
mv scenery/terrain/*/terrain/* scenery/terrain/
mv scenery/terrain/*/objects/* scenery/objects/
QSQ
источник
Попробуйте на копии папки на случай, если я что-то неправильно понял :-)
QSQ
Слишком поздно сейчас .. Не с моей стороны. Я всегда могу просто перенаправить 13 ГБ пейзажа.
Эндрю Д.
Не сработало Говорит, что «каталог не пустой»
Эндрю Д.
Хм странно. Я попробовал это здесь с созданием такого дерева и помещением файлов в ландшафт / ландшафт / ландшафт / пейзаж / ландшафт / ландшафт / ландшафт / пейзаж / ландшафт / объект / и ландшафт / ландшафт / b / объекты /
QSQ
Может быть, я могу попытаться переместить текущий каталог / каталог местности в другое место, чтобы предотвратить конфликт файлов?
Андрей Д.