无法使用 mkdir 创建新目录

无法使用 mkdir 创建新目录

当我跑步时

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$ 

相关内容