Как использовать gitbash с именами файлов, которые содержат символы восклицательного знака ASCII, такие как! 0-MyFolder - PullRequest
0 голосов
/ 06 апреля 2019

Мне нужно использовать gitbash в MS-Windows с именами папок файлов, которые содержат восклицательный знак в качестве первых символов, например «! 0-MyProjectFolder» (без кавычек. Я использую восклицательный знак для сортировки файлов Microsoft Windows в верхняя часть, поскольку Windows не обеспечивает способ индексации и принудительного порядка сортировки файлов и папок.

Gitbash постоянно выдает мне сообщения об ошибках:

Я уже пробовал несколько синтаксисов:

$ cd "!0-Projects-WIP"
bash: !0: event not found

$ cd "\!0-Projects-WIP"
bash: \!0: event not found

$ cd !0-Projects-WIP
bash: !0: event not found

Убедитесь, что я НЕ анализирую строку типа '/New.*desktop.*is/!d' в публикации StackOverflow по адресу Как устранить ошибку "bash:! D ': событие не найдено" в Подстановка команд Bash

VNCServerAndDisplayNumber="$(echo "${VNCServerResponse}" \
    | sed '/New.*desktop.*is/!d' | awk -F" desktop is " '{print $2}')"

Я передаю имя каталога! 0-Projects-WIP в GitBash, чтобы я мог перейти в каталог с именем! 0-Projects-WIP. Я не собираюсь делать двойные кавычки или расширение истории. Если восклицательный знак в имени папки является директивой расширения истории, то это не ожидаемый результат. ! в моем случае необходимо экранировать, чтобы оно правильно читалось как часть имени папки, а команда оболочки "cd" интерпретирует его как строку.

Теперь я понимаю, что! 0-Projects-WIP - это, вероятно, дурное имя для парсера оболочки Unix, потому что он заставляет парсер командной строки делать то, что не было моим намерением, но для оболочки командной строки MS-Windows есть нет путаницы

1 Ответ

0 голосов
/ 06 апреля 2019

Я получил его для работы только с одним escape-символом перед строкой:

$ cd \!0-Projects-WIP

rlysa@domainname MINGW64 /c/users/rlysak01/desktop/!0-Projects-WIP (master)
$

Простое решение. Кавычки в строке имени папки не нужны.

...