Bash в Windows: команда mv - не может перейти в свой подкаталог
3045
Sly_cardinal
Я пытаюсь установить Ruby из источников в подсистеме Windows Linux. Я успешно собрал из исходного кода в своем домашнем каталоге: ~/ruby/ruby-2.3.0и я пытаюсь переместить его в /opt/rubies/.
Когда я запускаю команду перемещения, я получаю следующую ошибку:
/# 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’
Это очень запутанно, так как я перемещаю каталог в совершенно другое место, а не в сам подкаталог, как показывают сами пути.
Это делает то же самое для любой команды перемещения в моем домашнем каталоге:
~# mv test/ / mv: cannot move ‘test/’ to a subdirectory of itself, ‘/test’
Это терпит неудачу и с и без завершающих слешей. Я подтвердил, что каталог назначения также пуст.
Sly_cardinal 8 лет назад
0
0
Rowan Hawkins
Try without the trailing / on the source argument. With that there, you are telling the OS to move the contents of the directory but not specifying the files, and not the directory. That's actually a convention that many unix systems follow across commands.
So instead of: mv ~/ruby/ruby-2.3.0/ /opt/rubies/
try: mv ~/ruby/ruby-2.3.0 /opt/rubies/
You also need to make sure that you are not running the command with PWD = ~/ruby/ruby-2.3.0 because then you are trying to move the directory you are in. cd ~; mv ~/ruby/ruby-2.3.0 /opt/rubies/
Я перепробовал все комбинации конечных слешей - с и без - и все равно выдает ту же ошибку. В первом примере я выполнял команду из `PWD = /`, поэтому меня не было в перемещаемом каталоге.
Sly_cardinal 8 лет назад
0