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.0
e 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.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 movimentação:
mv ~/ruby/ruby-2.3.0 /opt/rubies
Isso criará o diretório/opt/rubies/ruby-2.3.0
Leitura adicional
- Um índice AZ da linha de comando Bash para Linux- Uma excelente referência para todas as coisas relacionadas à linha de comando do Bash.
- eu- Listar informações sobre arquivos.
- mv- Mova ou renomeie arquivos ou diretórios.
- rm- Remover arquivos (excluir/desvincular)
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.