-3

Я загрузил Linux Bash Shell для Windows 10, но столкнулся с двумя проблемами. Для начала я попытался переместить все свои предыдущие коды в домашний каталог, но я не смог увидеть ни одного из этих файлов в терминале bash. Это работает только когда я копирую и вставляю эти файлы в оболочку bash. Как я должен это сделать? Я не хочу сохранять свои скрипты где-то еще и каждый раз вручную копировать их в мой домашний каталог.

Во всяком случае, я решил, что буду хранить эти сценарии там, где они были, и создать ярлык для их местоположения из моего домашнего каталога. Допустим, каталог, в который я поместил все мои файлы, называется XXX, и в этом каталоге есть три папки: YYY, ZZZ и AAA. Я открыл терминал bash и создал ярлык, используя ln -s /mnt/c/Users/.../XXX . Как и ожидалось, XXX появился в моем домашнем каталоге. Я открыл ярлык с помощью CD XXX, и он занял XXX, но когда я попытался получить доступ к YYY оттуда, я не смог.

Когда я cd YYY , меня переводят в ~/XXX/YYY/ , но когда я использовал ls для проверки своих файлов в YYY, я обнаружил, что содержимое YYY было точно таким же, как XXX, то есть я вижу YYY и ZZZ в каталоге YYY. Я попытался снова, с CD YYY, который привел меня к ~/XXX/YYY/YYY/ и так далее. Я никогда не мог попасть в папку YYY. Та же ситуация возникает и для ZZZ. Спасибо всем, кто может решить одну из двух моих проблем.

1 ответ1

1

Я думаю, что это просто глючит.

Хотя я не утверждаю, что это абсолютно проверенный ответ, который гарантированно правильный, основанием для моего ответа является нечто большее, чем просто дикий удар в темноте. Когда я установил Microsoft bash для Windows, программное обеспечение указывало на https://aka.ms/wsldocs для документации. Когда я пошел туда, я прочитал:

Это предоставляется как бета-версия программного обеспечения. Хотя многие команды coreutil, предоставляемые Ubuntu, будут работать, некоторые команды не будут работать.

Пакет "coreutils" включает в себя несколько довольно простых команд, таких как: * pwd (руководство по GNU coreutils: pwd), который просто выводит "текущий рабочий каталог", эквивалентный выполнению "cd" (без параметра) в DOS или Windows CMD * cat (руководство по GNU coreutils: cat), которое просто выводит потоки (например, файлы), что эквивалентно выполнению "type" в DOS или Windows CMD * head (руководство по GNU coreutils: head, которое выводит первые 10 строк (или некоторые другие) указанное количество строк)

и еще один (который может быть наиболее актуален для этого вопроса): * ln (руководство по GNU coreutils: ln, которое создает символические ссылки

Все эти программы, как правило, считаются довольно простыми, но многие считаются весьма необходимыми для выполнения некоторых базовых задач, поэтому они являются частью этого пакета, называемого "базовыми" утилитами. Поскольку Microsoft объявила, что они не полностью функциональны, это означает, что этот выпуск bash просто еще не готов к прайм-тайм. Поэтому, когда они говорят, что программное обеспечение является "бета", они действительно имеют это в виду.

Мне кажется, что подкаталоги символических ссылок еще не полностью поддерживаются. Если вы не собираетесь исправлять все еще неработающий код Microsoft, я предлагаю подождать. Или, может быть, попробовать некоторые альтернативы. Я не обязательно говорю, что любой из них будет делать именно то, что вы хотите, но я думаю, что все они были дольше, чем код подсистемы перевода Linux-> Windows от Microsoft. Таким образом, если игра с недавно выпущенным кодом Microsoft вызывает разочарование, они могут быть немного более надежными, и поэтому с ними будет веселее играть.

  • Cygwin
  • Файловая система NTFS: в частности, функция под названием Junctions
  • Winsh (Мои собственные выпуски некоторых программ)
  • MSYS coreutils
    • (Моя страница winsh предоставляет некоторую информацию о DLL-файлах, чтобы сделать это легко)
    • Я видел 90,624-байтовый «ln.exe», который, как я полагаю, был из этого. Хотя не играл с этим. Может быть, это будет даже лучше работать с выпуском Microsoft bash? А может и нет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .