web-dev-qa-db-ja.com

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
4

パスに親ディレクトリが存在しない可能性があります。

で試すことができます

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
22
sudodus

sudodus's answer は、指定されたパスに沿ってすべてのディレクトリを作成する方法に適切に対処します。別の方法は、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にデフォルトで付属する別のスクリプト言語です。

6