Bash en Windows: comando mv: no se puede mover a un subdirectorio propio

Bash en Windows: comando mv: no se puede mover a un subdirectorio propio

Estoy intentando instalar Ruby desde fuentes en el subsistema Windows Linux. Compilé exitosamente desde la fuente en mi directorio de inicio: ~/ruby/ruby-2.3.0y estoy intentando moverlo a /opt/rubies/.

Cuando ejecuto el comando mover me sale el siguiente error:

/# 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’

Esto es muy confuso ya que estoy moviendo el directorio a una ubicación totalmente diferente, no a un subdirectorio en sí mismo, como muestran las propias rutas.

Hace lo mismo con cualquier comando de movimiento en mi directorio de inicio:

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

Y parece que tampoco puedo copiar ningún archivo:

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

¿Estoy haciendo algo mal?

Respuesta1

Pruebe sin el final /del argumento fuente. Con eso allí, le está diciendo al sistema operativo que mueva el contenido del directorio pero sin especificar los archivos, ni el directorio. En realidad, esa es una convención que muchos sistemas Unix siguen en todos los comandos.

Entonces en lugar de:mv ~/ruby/ruby-2.3.0/ /opt/rubies/

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

También debes asegurarte de no estar ejecutando el comando con PWD = ~/ruby/ruby-2.3.0 porque entonces estás intentando mover el directorio en el que te encuentras.cd ~; mv ~/ruby/ruby-2.3.0 /opt/rubies/

Respuesta2

¿Estoy haciendo algo mal?

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

Necesitas eliminarambosdetrás /s.

¿Ya existe el directorio /opt/rubies/ruby-2.3.0? Compruébalo ejecutando:

ls /opt/rubies/ruby-2.3.0

Si existe, ejecute el siguiente comando para eliminarlo:

rm -rf /opt/rubies/ruby-2.3.0

Ahora usa el siguiente comando para hacer el movimiento:

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

Esto creará el directorio/opt/rubies/ruby-2.3.0


Otras lecturas

Respuesta3

Gracias a todos por las respuestas, pero resulta que se trata de un error de la versión beta de Bash en Windows.

Uno de los desarrolladores publicó uncomente en su rastreador de problemas el 2016-04-11:

Tenemos una solución interna en una de nuestras ramas de desarrollo. Debería llegar a las compilaciones internas en poco tiempo.

información relacionada