
Я использую Interix в Windows для совместимости с Unix и нахожу аргумент, -p
чтобы mkdir
вести себя не так, как я ожидаю:
> which mkdir
C:\SFU\bin\mkdir
> mkdir -p c:\Program Files\
A subdirectory or file -p already exists.
Error occurred while processing: -p.
На странице руководства SUA для mkdir в частности указано:
NAME
mkdir - make directories
SYNOPSIS
mkdir [-p] [-m mode] directory_name [...]
DESCRIPTION
The mkdir utility creates the directories named as operands, in the order
specified, using mode rwxrwxrwx (0777) as modified by the current
umask(2).
-p Create intermediate directories as required. If this option is
not specified, the full path prefix of each operand must already
exist. Intermediate directories are created with permission bits
of rwxrwxrwx (0777) as modified by the current umask, plus write
and search permission for the owner. Do not consider it an error
if the argument directory already exists.
Почему я получаю ошибку о существующем каталоге, хотя я передал -p
? Кажется, -p
не распознается как флаг, и вместо этого создается каталог с именем -p
. Как передать -p
аргумент?
решение1
mkdir
Вместо Interix'а поднимался Windows . Я обхожу эту проблему, указывая полный путь к mkdir
местоположению Interix. Это было необходимо, хотя и which mkdir
давал Interix.