movendo subdiretórios com o comando mv

1

Na estrutura a seguir, com um diretório pai K e três subdiretórios, D , H e B , respectivamente, diretamente abaixo dele, meu diretório atual é D. A partir disso, preciso mover H como um subdiretório sob B . Isso pode ser feito com o comando mv sem meu primeiro cd-ing no diretório pai K , o que não é permitido (isso é para um curso introdutório no Python 3)? Eu tentei o seguinte:

mv K/H K/B/

mas receba uma mensagem de erro, talvez porque diretórios supérfluos não sejam permitidos. Eu também tentei

mv /H /B/

mas com a mesma falta de sucesso ....

Atualização: por algum motivo, não consigo adicionar um comentário a este tópico, que eu mesmo iniciei, por isso optei por comentar desta forma. O comentário de Steeldriver me deu a inspiração necessária para completar com sucesso a tarefa antes de mim. Os comandos que usei eram do tipo

mv ../H ../B/

em vez de digitar

mv ../K/H ../K/B/

Henri

    
por user295029 02.04.2017 / 20:00

1 resposta

2

Se um caminho começar com / , ele será iniciado a partir da raiz (ou seja, o diretório que não possui um pai). Se um caminho não começar com / , ele será iniciado a partir do diretório atual.

Existem dois nomes de diretórios especiais: . sempre se refere ao diretório atual e .. sempre se refere ao pai do diretório atual. Portanto, se você estiver em D , que é um subdiretório de K , poderá consultar K as .. . Se você estiver em D , então, um% comum K significa o subdiretório de D chamado K , que não é o que você deseja.

Assim, o comando que você está procurando é

mv ../K/H ../K/B/

Você também pode usar caminhos absolutos, mas precisa fornecer o caminho completo desde a raiz. Por exemplo. se K for realmente /home/henri/exercises/1/K , você poderá escrever

mv /home/henri/exercises/1/K/H /home/henri/exercises/1/K/B/

¹ Tecnicamente, o diretório raiz é, na verdade, seu próprio pai.

    
por 03.04.2017 / 02:29