У меня есть каталог с именем:
-2
Я хочу, чтобы CD в него, но CD жалуется:
bash: cd: -2: invalid option
Безуспешно я пытался:
cd "-2"
cd '-2'
cd \-2
Любое решение?
Изменить: на сервере нет файловых браузеров, таких как mc и т. Д.
linux
command-line-interface
user151851
источник
источник
Ответы:
Как минимум двумя способами:
Используйте
--
аргумент.При этом используется соглашение, общее для инструментов GNU, которое состоит в том, чтобы не обрабатывать все, что появляется после,
--
как параметр командной строки.Как заметил комментатор , это соглашение также определено в стандарте POSIX :
а также :
Укажите путь явно:
Это указывает путь, явно указывающий текущий каталог (
.
) в качестве отправной точки.Это вариации на выше. Любое количество таких изменений может быть возможным; Я оставлю это в качестве упражнения для читателя, чтобы узнать все из них.
источник
cd
страницы «cd
Утилита должна соответствовать ... разделу 12.2»."hello world"
это один аргумент, ноhello world
это два, и"-2"
это то же самое, что и-2
.cd -- --
илиcd ./--
должно работать.Это должно работать:
- значит больше нет варианта
источник
Это будет работать, если '-2' находится в текущем каталоге.
Вы можете выполнить автозаполнение, набрав - и нажав Tab.
источник
cd /home/...../-2 тоже работает. Дайте полный путь доступа.
источник
Просто для дополнения, если вы хотите удалить / удалить этот каталог, вы можете использовать следующую команду:
источник
Я знаю, что на этот вопрос уже был дан ответ. Если у кого-то есть ситуация, подобная моей, это для них:
Я запустил приложение Java, и он искал каталог, начинающийся с
<path>
, я должен был заменить его на правильный путь перед запуском приложения. Однако я забыл это сделать. Приложение создало каталог с именем<path>
.Я попытался
cd <path>
- дал мне ошибку "-bash: синтаксическая ошибка рядом с неожиданной новой строкой токена" На основе предложенного здесь (я понимаю, что для каталога, начинающегося с - и не <), я попыталсяcd -- <path>
. Однако я получил ту же ошибку.Когда я попробовал
cd \<path>\
- это сработало!Исходная информация:
Символы «<» и «>» используются для перенаправления STDIN и STDOUT, поэтому их необходимо экранировать, чтобы оболочка не интерпретировала их как перенаправления.
источник