Як записатись на каталог з іменем, що починається з "-" (мінус)?


10

У нас є кілька папок, де імена починаються з "-". Якщо я спробую ввести їх з терміналом, cdінтерпретує "-" як варіант. Як я міг керувати цим?


1
Було б розумно уникати таких символів у назвах директорій / папок.
Міндвін

Ти не міг просто так зробити cd '-my-directory'?
OldBunny2800

@ oldbunny2800 Ви пробували це?
nohillside

1
@ OldBunny2800 Ні. Котирування не дозволяють оболонці обробляти символи окремо; рядки, що починаються з дефісів, розглядаються як варіанти (чи ні) командою, яка отримує аргументи, незалежно від того, як ці рядки були представлені оболонці.
чепнер

1
@patrix Я зробив одразу після того, як я опублікував коментар, потім відволікся від інших терміналів, а потім забув про свій коментар. :) Чепнер ой, це має більше сенсу.
OldBunny2800

Відповіді:


20

Це має просто працювати:

cd /path/to/-folderthatstartswithdash

Редагувати :

Відповідно до цього питання , це працює, якщо ви хочете лише ввести ім'я:

cd -- -folderthatstartswithdash

5
--Метод правильну відповідь ... він буде працювати з більшістю стандартних утиліт , які приймають ім'я файлу в якості аргументу , і позбавляє від необхідності повністю визначити шлях.
Кайтар

--Метод працює як «Вимкнення» аргумент розбір.
Тоні Вільямс

3
Чому обмеження "якщо ви хочете лише ввести ім'я"? Якщо вам потрібно більше аргументів, просто поставте їх перед --.
Федеріко Полоні

@FedericoPoloni Я просто кажу, якщо ви не хочете повного шляху, ви можете використовувати цей. Усі інші аргументи мають бути зроблені перед -.
Том Шен

19
cd ./-folder

зазвичай тут добре працює (як і з іншими командами)


Одна приємна річ у цьому рішенні - це те, що він працює з будь-якою програмою чи командою, а не лише з 'cd'; це не залежить від того, щоб команда чи програма мали якусь особливу поведінку типу "-", щоб змінити інтерпретацію наступних аргументів.
Ларрі Гріц

-5

Введення імені в лапки повинно працювати.


3
Навіщо це працювати? Як утиліта дізнається різницю? Цитування виконується оболонкою, адже аргументи масиву, отримані утилітою, будуть абсолютно однаковими в будь-якому випадку. Я визнаю, що я не спробував вашого рішення, але з того, що я мало знаю про снаряди, здається, що це само собою зрозуміло, що це неможливо .
Йорг W Міттаг

Це повинно працювати в Windows IIRC, і це те, що я подумав спочатку, але можу підтвердити, що він не працює на mac.
Cullub

2
Якщо він працює в Windows, це лише тому, що модель командного рядка Windows є абсолютно смішною і непослідовною. Або просто тому, що команди Windows не розглядаються -як символ опції. Але жодним чином цитування не повинне змінювати цю поведінку.
R .. GitHub СТОП ДОПОМОГАТИ ВІД
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.