Я пытаюсь установить 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’
И я тоже не могу скопировать ни один файл:
~# cp ruby/ruby-2.3.0/ /opt/rubies/ruby-2.3.0
cp: omitting directory ‘ruby/ruby-2.3.0/’
Я делаю что-то неправильно?
решение1
Попробуйте без завершающего /
аргумента источника. С этим вы сообщаете ОС о необходимости переместить содержимое каталога, но не указываете файлы и не каталог. На самом деле это соглашение, которому следуют многие системы Unix в командах.
Поэтому вместо:mv ~/ruby/ruby-2.3.0/ /opt/rubies/
пытаться:mv ~/ruby/ruby-2.3.0 /opt/rubies/
Вам также необходимо убедиться, что вы не запускаете команду с PWD = ~/ruby/ruby-2.3.0, поскольку в этом случае вы пытаетесь переместить каталог, в котором находитесь.cd ~; mv ~/ruby/ruby-2.3.0 /opt/rubies/
решение2
Я делаю что-то неправильно?
mv ~/ruby/ruby-2.3.0/ /opt/rubies/
Вам нужно удалитьобаконечный /
s.
Каталог /opt/rubies/ruby-2.3.0
уже существует? Проверьте, выполнив:
ls /opt/rubies/ruby-2.3.0
Если он существует, выполните следующую команду, чтобы удалить его:
rm -rf /opt/rubies/ruby-2.3.0
Теперь используйте следующую команду для выполнения перемещения:
mv ~/ruby/ruby-2.3.0 /opt/rubies
Это создаст каталог/opt/rubies/ruby-2.3.0
Дальнейшее чтение
- Алфавитный указатель командной строки Bash для Linux- Отличный справочник по всем вопросам, связанным с командной строкой Bash.
- лс- Вывод информации о файлах.
- мв- Перемещать или переименовывать файлы и каталоги.
- рм- Удалить файлы (удалить/отсоединить)
решение3
Спасибо всем за ответы, но, как оказалось, это ошибка бета-версии Bash для Windows.
Один из разработчиков опубликовалкомментарий к их системе отслеживания ошибок от 2016-04-11:
У нас есть внутреннее исправление на одной из наших веток разработки. Должно появиться в инсайдерских сборках в ближайшее время.