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

1

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

Quando executo o comando Mover, 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 é super confuso, pois estou movendo o diretório para um local totalmente diferente, não um subdiretório dele mesmo, como os próprios caminhos mostram.

Faz o mesmo para qualquer comando de movimento no meu diretório pessoal:

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

E 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?

    
por Sly_cardinal 17.04.2016 / 05:48

3 respostas

2

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

Um dos desenvolvedores postou um comentário ao rastreador de problemas em 2016-04-11 :

We have a fix internally on one of our dev branches. Should hit the insiders builds before too long.

    
por 18.04.2016 / 12:07
1

Estou fazendo algo errado?

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

Você precisa remover ambos atrás de / s.

O diretório /opt/rubies/ruby-2.3.0 já 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 jogada:

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

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

Leitura Adicional

por 17.04.2016 / 12:42
0

Tente sem o / no 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 não o diretório. Na verdade, é uma convenção que muitos sistemas Unix seguem os comandos.

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

tente: 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 você está tentando mover o diretório em que está. cd ~; mv ~/ruby/ruby-2.3.0 /opt/rubies/

    
por 17.04.2016 / 06:07