Мне нужно использовать 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 есть нет путаницы