Isso é completamente simples.
mv /Main1/Sub2 /Main2
Isso cria o diretório /Main2/Sub2
com todo o conteúdo do original e exclui o diretório /Main1/Sub2
. Se você não quiser digitar o nome completo, você pode usar um glob; apenas pare de digitar o nome e termine com *
quando tiver digitado caracteres suficientes para distinguir o nome do diretório de tudo o mais no diretório (tenha cuidado!):
mv /Main/Sub* /Main2
Possíveis problemas que podem estar causando o não funcionamento esperado:
-
Já existe um diretório dentro de
/Main2
com o mesmo nome de/Main1/Sub2
. Isso causa o errodirectory not empty
, poismv
está se recusando a sobrescrever o diretório existente. Se esse for o caso, renomeie (ou remova) o diretório existente em/Main2
first:mv /Main2/Sub2 /Main2/SomethingElse
-
Usando um caminho incorreto. Lembre-se de que tudo é sensível a maiúsculas e minúsculas e deve estar ciente dos caminhos relativos e
~
de expansão. Estes são todos diferentes dependendo do diretório de trabalho atual/Main1/Sub2 Main1/Sub2 ~/Main1/Sub2
-
Você não tem permissão para gravar no diretório de origem e / ou de destino. Isso será muito óbvio a partir da mensagem de erro:
mv: cannot move 'thing' to '/place': Permission denied
. Nesse caso, você pode executar o meu comando favorito para superar o problemasudo !!