Почему Interix mkdir не учитывает аргумент -p?

Почему Interix mkdir не учитывает аргумент -p?

Я использую 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.

Связанный контент