Как переместить подпапку с содержимым в другую исходную папку без копирования?

Я знаю, что об этом спрашивали миллион раз, но я не могу найти ответ на то, что я пытаюсь сделать конкретно.

Вот структура каталогов:

Main Folder1
|
|-Subfolder 1
|-Subfolder 2 HasAReallyLongName
|---files
|-Subfolder 3-1000

Main Folder2
|
|-Subfolder 2 HasAReallyLongName
|---files
  • Я хочу попытаться переместить Subfolder2 с его файлами в другой каталог.
  • Я не хочу копировать, а затем удалять что-либо, потому что у меня недостаточно места.
  • Я не хочу mv /Main/Sub2/* /Main2/, потому что это помещает все в папку /Main2, а не в подкаталог.
  • Я не хочу mkdir /Main2/..., потому что это действительно длинное имя (в основном временные метки), и я не хочу вводить его вручную (и, вероятно, испортить)
  • Насколько я знаю , rsync также копирует файлы, поэтому я не уверен, что это сработает.

Любые предложения или другие инструменты будут высоко оценены!

3
задан 10 December 2016 в 23:38

2 ответа

Получил его: Используя sudo mv /Main1/Sub2 /Main2 сделал это для меня. Основным различием является корень, который я предполагаю.

-1
ответ дан 10 December 2016 в 23:38

Это абсолютно просто.

mv /Main1/Sub2 /Main2

Это создает каталог /Main2/Sub2 со всем содержанием оригинала, и удаляет каталог /Main1/Sub2. Если Вы не хотите вводить полное имя, можно использовать шарик; просто прекратите вводить имя и конец с * когда Вы ввели достаточно символов для различения имени каталога от всего остального в каталоге (быть осторожным!):

mv /Main/Sub* /Main2

Возможные проблемы, которые могли заставлять это не работать как ожидалось:

  • Внутри уже существует каталог /Main2 с тем же именем как /Main1/Sub2. Это вызывает ошибку directory not empty, как mv отказ должен перезаписать существующий каталог. Если это верно, переименуйте (или удалите), существующий каталог в /Main2 во-первых:

    mv /Main2/Sub2 /Main2/SomethingElse
    
  • Используя неправильный путь. Помните, что все чувствительно к регистру и знать об относительных путях и ~ расширение. Они все отличаются в зависимости от текущего рабочего каталога

    /Main1/Sub2
    Main1/Sub2
    ~/Main1/Sub2
    
  • У Вас нет разрешения записать в источник и/или целевой каталог. Это будет очень очевидно из сообщения об ошибке: mv: cannot move 'thing' to '/place': Permission denied. В этом случае можно выполнить мою любимую команду для преодоления проблемы

    sudo !!
    
2
ответ дан 10 December 2016 в 23:38

Другие вопросы по тегам:

Похожие вопросы: