cygwin64 на WIndows 10: раздражающее всплывающее окно «ошибка, система не может найти указанный файл» - PullRequest
0 голосов
/ 16 января 2020

Я использую cygwin64 на ноутбуке Windows 10. Почти каждый день, когда я набираю текст, мои большие пальцы и плохие навыки печати делают sh клавиатуру и / или трекпад, и я получаю всплывающее сообщение об ошибке:

Error: the system cannot find the file specified
C:\Users\Mark Logan\Downloads

Этот путь существует и доступен для чтения

1 Ответ

0 голосов
/ 16 января 2020

Когда вы набираете имя файла в формате windows, как в вашем примере C:\Users\Mark Logan\Downloads, символ backsla sh '' 'обрабатывается как escape-код символа. Это изменяет два символа «\ U», чтобы они отображались как один «U». Для нескольких символов два символа заменяются новым, например, «\ b» вставляет BEL, «\ r» вставляет CR, «\ n» вставляет LF, «\ t» вставляет TAB.

Существует несколько способов правильного чтения имени файла в стиле windows программой cygwin, такой как оболочка bash. Обратите внимание, что некоторые программы не будут интерпретировать имя файла в стиле windows как имя файла в стиле cygwin.

  • Обертывание в одинарные кавычки: 'C:\Users\Mark Logan\Downloads'
  • Использование экранированных обратных косых черт в двойных кавычках: "C:\\Users\\Mark Logan\\Downloads"
  • Используйте экранированные обратные слэши и пробелы: C:\\Users\\Mark\ Logan\\Downloads

Многие программы cygwin, включая большинство оболочек, используют библиотеку readline для обработки ввода. Это позволяет редактировать строку ввода перед отправкой в ​​программу. Вы можете использовать левую и правую клавиши для перемещения вперед и назад по одному символу за раз, а клавиши home и end для перехода к началу или концу строки ввода. Вы можете добавлять символы в каретку, печатая их, и удалять символы до или после каретки, используя клавишу возврата или клавишу возврата. Нажатие ввода (или возврата) в любой точке строки отправит отредактированную строку в программу.

Чтобы ввести имена файлов в стиле Windows, чтобы они интерпретировались как один и тот же файл, необходимо ввести имя файла в качестве имени файла в стиле cygwin, например, C:\Users\Mark Logan\Downloads как /cygwin/Users/Mark\ Logan/Downloads или "/cygwin/Users/Mark Logan/Downloads" (пробел или пробел в двойных или одинарных кавычках). Вы можете использовать программу cygpath для выполнения этого преобразования (см. Cygpath --help).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...