当我跑步时
mkdir ../../bin/Release_Linux/Resources
我收到错误
$ mkdir ../../bin/Release_Linux/Resources
mkdir: cannot create directory ‘../../bin/Release_Linux/Resources’: No such file or directory
要不就
mkdir Release_Linux/Resources
mkdir: cannot create directory ‘Release_Linux/Resources’: No such file or directory
答案1
路径中的父目录可能不存在。
您可以尝试
mkdir -p /path-to-directory/directory-name
看man mkdir
-p, --parents
no error if existing, make parent directories as needed
如果出现permission denied
错误,则表示您无权在指定路径中创建目录。
检查是否可以通过修改团体成员或所有权,这样就获得涉及的整个目录路径所需的权限。
否则你需要提升权限,因此尝试使用sudo
sudo mkdir -p /path-to-directory/directory-name
答案2
sududus 的回答适当地解决了如何沿给定路径创建所有目录的问题。另一种方法是通过 Python。如果您使用 Python 为 Ubuntu 开发软件并且需要此类功能,这将特别有用。调用mkdir
外部命令会增加额外进程和额外分叉的开销,从而浪费资源。幸运的是,Python 的标准库(特别是os
模块)具有makedirs()
以下函数:
$ python3 -c 'import os,sys;os.makedirs(sys.argv[1])' test_1/test2/test_3
$ tree test_1
test_1
└── test2
└── test_3
2 directories, 0 files
请注意,这种行为也可以在Perl,这是 Ubuntu 默认自带的另一种脚本语言。
答案3
当当前目录实际上不再存在时,我就遇到了这种情况。
我位于目录temp
:
mark@mark:~/PycharmProjects/temp$ mkdir foo
mkdir: cannot create directory ‘foo’: No such file or directory
.
当当前目录为空(甚至没有隐藏和..
存在的目录)时,我看到了亮光:
mark@mark:~/PycharmProjects/temp$ ll
total 0
一个目录temp
确实存在,但它是另一个同名的目录。当我回滚太多更改并撤消回滚时,PyCharm 一定删除并重新创建了项目目录。
mark@mark:~/PycharmProjects/temp$ cd ..
mark@mark:~/PycharmProjects$ ll
total 12
drwxrwxr-x 3 mark mark 4096 Nov 2 14:26 ./
drwxr-xr-x 40 mark mark 4096 Nov 2 14:50 ../
drwxrwxr-x 3 mark mark 4096 Nov 2 14:42 temp/
mark@mark:~/PycharmProjects$ cd temp
mark@mark:~/PycharmProjects$ mkdir foo
mark@mark:~/PycharmProjects$