В Bash, как я могу создать каталог с именем -p
?
mkdir -p
не удалось.
mkdir "-p"
не удалось.
mkdir "\-p"
не удалось.
mkdir \-p
не удалось.
Большинство утилит (все POSIX-совместимые, кроме test
и echo
) поддерживают опцию "end of options" --
так что вы можете запустить:
mkdir -- -p
Это особенно полезно при переименовании или удалении файлов, которые потенциально могут начинаться с тире. В скриптах вы всегда должны использовать
mv -- "$filename"
вместо простого mv "$filename"
или, что еще хуже, без кавычек.
mkdir ./-p
Имейте в виду, что большинство других программ должны использовать тот же "трюк".