
Я скачал довольно большую файловую структуру (>100 ГБ) в подпапку моего корневого каталога, назовем ее /folder
. Проблема в том, что я случайно скопировал ее в подпапку этой папки, а не просто прямо в эту папку, так что теперь у меня /folder/folder/*
вместо /folder/*
того, что мне нужно. Есть ли лучший способ удалить лишний уровень, чем просто:
# mv /folder/folder/* /folder
# rmdir /folder/folder
решение1
Если источник и назначение находятся в одной файловой системе, mv просто создаст еще одну запись в каталоге, он не будет копировать 100 ГБ данных. Так что это лучший способ сделать это, вам не нужно искать другой способ. Но если они находятся в разных файловых системах, данные будут скопированы. Кроме того, вам не нужно использовать rmdir - mv сделает это автоматически.
решение2
Команда mv
не перемещает данные в файлах, а только имена файлов. Если вы беспокоитесь о перемещении всех данных в каждом файле, то это не поможет.
решение3
Вы можете использовать:
# cd /folder/folder
# mv * ../
# rmdir /folder/folder
но в чем проблема с тем, что у вас было? Можете ли вы пояснить, что вы подразумеваете под лучшим способом?
решение4
Немного более простая процедура (меньше операций МВ)
mv /folder /surplusfolder
mv /surplusfolder/folder /folder
rmdir /surplusfolder