どのように私は1つのPerlコマンドでディレクトリと親ディレクトリを作成するのですか?

StackOverflow https://stackoverflow.com/questions/1050365

質問

Perlでは、どのように私は、彼らが存在しない場合は、同時に、親ディレクトリを作成し、サブディレクトリを作成し、することができますか? UNIXのは、mkdir -pコマンドと同様に?

役に立ちましたか?

解決

use File::Path qw(make_path);
make_path("path/to/sub/directory");

非推奨mkpath、好ましいmake_pathは5人のポーターは、それが<のhref = "http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-05アーカイブのスレッドPerlでの議論から茎/msg00209.html」のrel = "noreferrer">ここを。

要するに、5.10テストはmakepath()インターフェースの引数解析に違和感を上げ。だから、それが機能するためのオプションを設定するための最後の引数としてハッシュを取ったシンプルなバージョンに置き換えられました。

他のヒント

ファイル::パスモジュールから使用mkpathます:

use File::Path qw(mkpath);
mkpath("path/to/sub/directory");

親切にあなたが「ます。mkdir -p」機能を持つPerlのモジュールを探している場合は無視されますが、次のコードは動作します:

my $dir = '/root/example/dir';

system ("mkdir -p $dir 2> /dev/null") == 0 
    or die "failed to create $dir. exiting...\n";

あなたはモジュールを使用することができますが、その後、あなたはあなたのコードが上のポートしようとしている各サーバーにインストールする必要があります。私は通常、それは私がディレクトリを作成するために、一度だけ、それを必要とするモジュールをインポートし、呼び出すためのより低いオーバーヘッドだからます。mkdirなどの作業のため、システムの機能を使用することを好むます。

refの http://perldoc.perl.org/File/Path.html

この「彼らが存在しない場合は[原文のまま!]前に、多くのUnixコマンドと同様にmkdir -p make_path機能は、指定されたディレクトリを作成します」

MKDIR()あなたのPerlスクリプト内のディレクトリを作成することができます。

例:

use strict;
use warnings;

my $directory = "tmp";

unless(mkdir($directory, 0755)) {
        die "Unable to create $directory\n";

このプログラムは0755に設定されたアクセス権を持つ「TMP」(;グループメンバーと他の人がファイルのみを表示し、ディレクトリの内容を一覧表示することができます唯一の所有者は、ディレクトリへの書き込み権限を持っている)と呼ばれるディレクトリを作成します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top