web-dev-qa-db-fra.com

Impossible de créer un nouveau répertoire avec mkdir

Quand je cours

mkdir ../../bin/Release_Linux/Resources

Je reçois une erreur

$ mkdir ../../bin/Release_Linux/Resources
mkdir: cannot create directory ‘../../bin/Release_Linux/Resources’: No such file or directory

Ou juste

mkdir Release_Linux/Resources
mkdir: cannot create directory ‘Release_Linux/Resources’: No such file or directory
4
Slobodan Vidovic

Un répertoire parent dans le chemin n'existe probablement pas.

Vous pouvez essayer avec

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

Voir man mkdir

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

Si vous obtenez une erreur permission denied, vous n'êtes pas autorisé à créer un répertoire dans le chemin spécifié.

Vérifiez si vous pouvez contourner le problème en modifiant adhésion au groupe ou propriété du groupe, afin d'obtenir l'autorisation nécessaire pour l'ensemble du chemin de répertoire concerné.

Sinon, vous avez besoin d'autorisations élevées, alors essayez avec Sudo

Sudo mkdir -p /path-to-directory/directory-name
22
sudodus

réponse de sudodus explique comment créer tous les répertoires le long du chemin donné. Une autre manière serait via Python. Ceci est particulièrement utile si vous développez un logiciel pour Ubuntu en Python et que vous avez besoin de cette fonctionnalité. Le fait d'appeler mkdir en tant que commande externe ajouterait une surcharge de processus supplémentaire et un forking supplémentaire, ce qui gaspillerait des ressources. Heureusement, la bibliothèque standard de Python, plus précisément le module os, a la fonction 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

Notez qu'un tel comportement peut également être obtenu dans Perl , qui est un autre langage de script fourni par défaut avec Ubuntu.

6