Як створити каталог під назвою '-p' під Linux з Bash? [дублікат]


22

Як в Bash я можу створити каталог з назвою -p?

mkdir -pне вдалося.
mkdir "-p"не вдалося.
mkdir "\-p"не вдалося.
mkdir \-pне вдалося.


1
Зауважте, що всі вони намагаються вийти з параметра bash. Оскільки це так само, як і не уникнуло, всі ці, крім третього, просто відправлять рядок "-p" в mkdir, який розбере його як опцію. Аналіз параметрів не робиться в bash, тому будь-який спосіб цього (описаний у відповідях нижче) є особливістю mkdir (вірніше, відсутністю помилок).
Score_Under

11
Потрібно запитати, чому ви хочете такого каталогу. Це було б ПДФА.
Даніель Р Хікс

3
@DanielRHicks: Я створив цю папку помилково, але не знаю, як її видалити.
Jichao

4
Чи не повинно виникати питання "Як видалити каталог з назвою" -p "під Linux з Bash?"
чепнер

@chepner: Тому що насправді це ті самі проблеми. Я намагався видалити каталог із, rmdirале не вдався з однаковими помилками.
Jichao

Відповіді:


40

Більшість утиліт (усі сумісні з POSIX, крім testі echo) підтримують опцію "кінець параметрів" -- , щоб ви могли запустити:

mkdir -- -p

Це особливо корисно при перейменуванні або видаленні файлів, які потенційно можуть починатися з тире. У сценаріях ви завжди повинні використовувати

mv -- "$filename"

замість простого mv "$filename"або, що ще гірше, імені файлу без котирування.


3
Дивовижно. Це дійсно добре знати
Bruno9779,

18

mkdir ./-p

Майте на увазі, що більшість інших програм повинні використовувати той самий "трюк".

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.