Bash no Windows: comando mv - não é possível mover para um subdiretório próprio

Bash no Windows: comando mv - não é possível mover para um subdiretório próprio

Estou tentando instalar Ruby a partir de fontes no subsistema Windows Linux. Eu compilei com sucesso a partir do código-fonte em meu diretório inicial: ~/ruby/ruby-2.3.0e estou tentando movê-lo para /opt/rubies/.

Quando executo o comando move, recebo o seguinte erro:

/# mv ~/ruby/ruby-2.3.0/ /opt/rubies/
mv: cannot move ‘/root/ruby/ruby-2.3.0/’ to a subdirectory of itself, ‘/opt/rubies/ruby-2.3.0’

Isso é muito confuso, pois estou movendo o diretório para um local totalmente diferente, não para um subdiretório, como mostram os próprios caminhos.

Ele faz a mesma coisa para qualquer comando de movimentação no meu diretório inicial:

~# mv test/ /
mv: cannot move ‘test/’ to a subdirectory of itself, ‘/test’

E também não consigo copiar nenhum arquivo:

~# cp ruby/ruby-2.3.0/ /opt/rubies/ruby-2.3.0
cp: omitting directory ‘ruby/ruby-2.3.0/’

Estou fazendo algo errado?

Responder1

Tente sem o /argumento de origem. Com isso, você está dizendo ao sistema operacional para mover o conteúdo do diretório, mas não especificando os arquivos e nem o diretório. Na verdade, essa é uma convenção que muitos sistemas Unix seguem nos comandos.

Então, em vez de:mv ~/ruby/ruby-2.3.0/ /opt/rubies/

tentar:mv ~/ruby/ruby-2.3.0 /opt/rubies/

Você também precisa ter certeza de que não está executando o comando com PWD = ~/ruby/ruby-2.3.0 porque então você está tentando mover o diretório em que está.cd ~; mv ~/ruby/ruby-2.3.0 /opt/rubies/

Responder2

Estou fazendo algo errado?

mv ~/ruby/ruby-2.3.0/ /opt/rubies/

Você precisa removerambosseguindo /S.

O diretório /opt/rubies/ruby-2.3.0já existe? Verifique executando:

ls /opt/rubies/ruby-2.3.0

Se existir, execute o seguinte comando para removê-lo:

rm -rf /opt/rubies/ruby-2.3.0

Agora use o seguinte comando para fazer a movimentação:

mv ~/ruby/ruby-2.3.0 /opt/rubies

Isso criará o diretório/opt/rubies/ruby-2.3.0


Leitura adicional

Responder3

Obrigado pelas respostas a todos, mas acontece que este é um bug da versão beta do Bash no Windows.

Um dos desenvolvedores postou umcomente no rastreador de problemas em 11/04/2016:

Temos uma correção interna em uma de nossas filiais de desenvolvimento. Deve atingir as compilações internas em breve.

informação relacionada