on April 29, 2015
This is a common error we would encounter while working with windows command prompt. It means that there’s something wrong in the arguments passed on to the command. Reasons could be any of the below.
- Not passing the right parameters to the command. For example,
Rmdir
command expects the directory name to be provided. Not adding this argument causes the error as below.c:\>rmdir The syntax of the command is incorrect.
- Passing more arguments than the command accepts
c:\>move file1 file2 file3 The syntax of the command is incorrect.
Move
command expects only two arguments, one for the actual file and the other for the destination file. Adding an extra argument causes the command to fail with the error. - This error can also occur even if we are passing the right number of arguments but the argument is not in the expected format. For example, ‘mkdir’ expects the directory path to be in the windows format like
dir1\dir2
. If you specify the path in Linux format as indir1/dir2
, it causes the error.c:\>mkdir dir1/dir2 The syntax of the command is incorrect.
How to resolve the error
If you encounter this error, the next thing to do is to check the usage of the command and identify what’s wrong in the command you ran. You can refer articles on this websiste for understanding syntax and example use cases. All the articles for windows commands are listed here. Windows commands reference.
Also, we can find the usage of a command by running the command with an argument /?
. For example to check the usage of shutdown
command, you can find it as below.
shutdown /?
Please add to the comments below if you are not able to fix the issue. I would do my best to reply back with a solution.
C:\Users\Tom\odot>mkdir -p spec/features/todo_lists The syntax of the command is incorrect.
Why is my cmd line saying this?
1 Answer
Nick Fuller
Hi Tong! (I’m assuming) You’re using Windows and Ruby (Oh boy you’re a brave soul!). It certainly is possible, but the few I know whom have tried end up with virtual machines!
The issue it seems is the file path structure. You’re following the lessons on Treehouse (great idea) but they use Apple with OSX which is unix based. You’re using Windows which is DOS based. The directory structure in DOS and OSX are different. DOS uses a backslash «\» and unix systems use a forward slash «/». It looks like you’re trying to use a forward slash when you should use a backslash. Furthermore, I’m not sure if windows supports the -p flag (I don’t know enough about DOS).
perhaps try mkdir spec\features\todo_lists
Hi,
I am trying to build a function locally as a windows container. When i try building the function locally I get «The syntax of the command is incorrect.» error on the «RUN mkdir -p /home/site/wwwroot» line in my dockerfile.
Here is my docker file.
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS installer-env
COPY . /src/dotnet-function-app
USER
RUN cd /src/dotnet-function-app && \
mkdir -p /home/site/wwwroot && \
dotnet publish *.csproj --output /home/site/wwwroot
# To enable ssh & remote debugging on app service change the base image to the one below
# FROM mcr.microsoft.com/azure-functions/dotnet:3.0-appservice
FROM mcr.microsoft.com/azure-functions/dotnet:3.0
ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
AzureFunctionsJobHost__Logging__Console__IsEnabled=true
COPY --from=installer-env ["/home/site/wwwroot", "/home/site/wwwroot"]
the error message I am getting is as follows:
PS C:\myfunction> docker build -t m1:V1 .
Sending build context to Docker daemon 1.878MB
Step 1/6 : FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS installer-env
---> e8e720676ba8
Step 2/6 : COPY . /src/dotnet-function-app
---> 74dc88982b98
Step 3/6 : RUN cd /src/dotnet-function-app && mkdir -p /home/site/wwwroot && dotnet publish *.csproj --output /home/site/wwwroot
---> Running in fe253de80f8c
The syntax of the command is incorrect.
The command 'cmd /S /C cd /src/dotnet-function-app && mkdir -p /home/site/wwwroot && dotnet publish *.csproj --output /home/site/wwwroot' returned a non-zero code: 1
I have disabled firewall and tuned off UAC. I have tried this on multiple different hosts with latest windows updates and docker desktop.
any idea what might have gone wrong?
Thanks
.Bat IF NOT EXIST
☑
0
Balabass
19.12.13
✎
10:06
Не работает конструкция. Подсобите
IF NOT EXIST «%APPDATA%\1C\Licence 2.0»
mkdir «%APPDATA%\1C\Licence 2.0»
copy \\10.10.10.240\BaseList\LicenceAddIn.config «%APPDATA%\1C\Licence 2.0»
EXIT
Пишет
Ошибка в синтаксисе команды.
1
Wobland
19.12.13
✎
10:07
goto?
2
spectre1978
19.12.13
✎
10:21
IF NOT EXIST, а не EXISTS
3
spectre1978
19.12.13
✎
10:21
тьфу, наоборот. EXISTS нужно, а у вас EXIST
4
Balabass
19.12.13
✎
10:22
IF EXIST (условие) (Действие)
Все в одну строку.
5
spectre1978
19.12.13
✎
10:24
ну поменяй exist на exists и посмотри. Ошибка пропадает.
6
Balabass
19.12.13
✎
10:29
(5) Пишет Непредвиденное появление каталога
7
spectre1978
19.12.13
✎
10:30
точно, тупанул, вернее вспомнил что-то не то.
Кавычки в екзисте убрать попробуй
8
Wobland
19.12.13
✎
10:33
сказал же
IF NOT EXIST «%APPDATA%\1C\Licence 2.0» goto r
mkdir «%APPDATA%\1C\Licence 2.0»
copy \\10.10.10.240\BaseList\LicenceAddIn.config «%APPDATA%\1C\Licence 2.0»
:r
EXIT
9
Balabass
19.12.13
✎
10:34
(8) Гоуту это запасной вариант
10
spectre1978
19.12.13
✎
10:37
(8) верно, команда, которая которая срабатывает в случае истинности условия, должна быть на той же строке что и IF.
11
Wobland
19.12.13
✎
10:38
IF NOT EXIST «%APPDATA%\1C\Licence 2.0» mkdir «Licence 2.0»
12
spectre1978
19.12.13
✎
10:39
(11) тут не прокатит, потому что нужно еще файл скопировать.
либо гоуту, либо батник вызывать
13
Wobland
19.12.13
✎
10:39
(12) мне пофих. Балабасс не зарекомендовал себя как дятел, поймёт
14
Balabass
19.12.13
✎
10:41
Вот так работает.
IF NOT EXIST «%APPDATA%\1C\Licence 2.0» mkdir «%APPDATA%\1C\Licence 2.0»
copy \\10.10.10.240\BaseList\LicenceAddIn.config «%APPDATA%\1C\Licence 2.0»
15
Balabass
19.12.13
✎
10:42
(11) Спасибо.
16
Wobland
19.12.13
✎
10:42
да не за что, мелочь, право слово

When working with a command line interface, you may sometimes encounter the error “mkdir: cannot create directory”. This error is often a result of missing parent directories or insufficient permissions. In this article, we will delve into the details of this error and provide solutions to resolve it.
To fix the «mkdir: cannot create directory» error in the command line, you can use the -p
option with the mkdir
command to create parent directories as needed. Alternatively, you can use the sudo
command to run mkdir
with root privileges, allowing you to create directories in locations where you may not have sufficient permissions.
- Understanding the mkdir Command
- The “mkdir: cannot create directory” Error
- Missing Parent Directories
- Insufficient Permissions
- Alternatives to mkdir
- Conclusion
Understanding the mkdir Command
Before we dive into the solutions, it’s important to understand what the mkdir
command does. mkdir
is a command-line utility in Unix and Unix-like operating systems such as Linux. It allows users to create new directories. The basic syntax of the mkdir
command is as follows:
mkdir [OPTION]... DIRECTORY...
In this syntax, DIRECTORY
is the name of the directory you want to create. The [OPTION]
is optional and can be used to modify the behavior of the command. For instance, the -p
option allows you to create parent directories as needed.
The “mkdir: cannot create directory” error typically occurs when you try to create a directory in a location where the parent directories do not exist or when you do not have the necessary permissions to create a directory in the specified location.
Missing Parent Directories
If you’re trying to create a directory with a path that includes non-existent parent directories, you’ll encounter this error. For example, if you try to create a directory at ~/Documents/Work/Projects
but the Work
directory does not exist, you’ll get the “mkdir: cannot create directory” error.
To resolve this, you can use the -p
option with the mkdir
command. The -p
option tells mkdir
to create parent directories as needed. Here’s how you can use it:
mkdir -p ~/Documents/Work/Projects
In this command, mkdir
will create the Work
directory (if it doesn’t exist already), and then create the Projects
directory inside it.
Insufficient Permissions
If you have insufficient permissions to create a directory in the specified location, you’ll encounter the “mkdir: cannot create directory” error. This typically happens when you’re trying to create a directory in a location owned by another user or a system location.
To resolve this, you can use the sudo
command to run mkdir
with root privileges:
sudo mkdir ~/Documents/Work/Projects
In this command, sudo
runs the mkdir
command with root privileges, allowing it to create directories in locations where the current user may not have permissions. Please note that using sudo
should be done with caution, as it grants elevated privileges and should only be used when necessary.
Alternatives to mkdir
In addition to using the mkdir
command, you can also create directories programmatically using scripting languages like Python or Perl. This can be useful if you are developing software and need to create directories as part of your code. For example, in Python, you can use the os.makedirs()
function:
import os
os.makedirs('~/Documents/Work/Projects', exist_ok=True)
In this Python script, os.makedirs()
creates the specified directory along with any missing parent directories. The exist_ok=True
parameter tells Python to not raise an error if the directory already exists.
Conclusion
In this article, we’ve covered the “mkdir: cannot create directory” error, why it occurs, and how to resolve it. We’ve also discussed the use of the mkdir
command and its options, as well as alternative methods for creating directories. By understanding these concepts, you can efficiently navigate and manipulate your file system using the command line.
The -p
option in the mkdir
command allows you to create parent directories as needed. For example, if you use mkdir -p ~/Documents/Work/Projects
, it will create the Work
directory (if it doesn’t exist already) and then create the Projects
directory inside it.
To resolve this error, you can use the -p
option with the mkdir
command. For example, if you want to create a directory at ~/Documents/Work/Projects
but the Work
directory does not exist, you can use mkdir -p ~/Documents/Work/Projects
. This command will create the Work
directory (if it doesn’t exist already) and then create the Projects
directory inside it.
If you do not have sufficient permissions to create a directory in the specified location, you can use the sudo
command to run mkdir
with root privileges. For example, you can use sudo mkdir ~/Documents/Work/Projects
to create a directory in a location where the current user may not have permissions. However, please note that using sudo
should be done with caution, as it grants elevated privileges and should only be used when necessary.
Yes, you can create directories programmatically using scripting languages like Python or Perl. For example, in Python, you can use the os.makedirs()
function to create directories. The os.makedirs()
function creates the specified directory along with any missing parent directories.