Не может сделать новый dir с 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
6
задан 28 November 2018 в 17:09

3 ответа

Вероятно, родительский каталог в пути не существует.

Можно попробовать

mkdir -p /path-to-directory/directory-name

Посмотрите man mkdir

   -p, --parents
          no error if existing, make parent directories as needed

Если Вы получаете a permission denied ошибка, у Вас нет полномочий создать каталог в указанном пути.

Проверьте, можно ли обойти проблему путем изменения состава группы или владения, так, чтобы Вам было нужно разрешение для целого включенного пути к каталогу.

Иначе Вам нужны поднятые полномочия, так попробуйте sudo

sudo mkdir -p /path-to-directory/directory-name
24
ответ дан 23 November 2019 в 07:14

ответ sudodus соответственно обращается, как создать все каталоги вдоль данного пути. Альтернативный путь был бы с помощью Python. Это особенно полезно, если Вы разрабатываете программное обеспечение для Ubuntu в Python и нуждаетесь в такой функциональности. Вызов 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.

6
ответ дан 23 November 2019 в 07:14

У меня было это, когда текущий каталог буквально больше не существовал.

Я был в каталоге 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$ 
1
ответ дан 2 November 2020 в 13:58

Другие вопросы по тегам:

Похожие вопросы: