如何在一个Perl命令中创建目录和父目录?

ski*_*ppy 15 filesystems directory perl mkdir

在Perl中,如何创建子目录,同时创建父目录(如果它们不存在)?像UNIX的mkdir -p命令一样?

Cli*_*rce 25

use File::Path qw(make_path);
make_path("path/to/sub/directory");
Run Code Online (Sandbox Code Playgroud)

不推荐使用的mkpath和首选的make_path来自于此处存档的Perl 5 Porters线程中的讨论.

简而言之,Perl 5.10测试在makepath()接口的参数解析中出现了尴尬.因此它被一个更简单的版本所取代,该版本将哈希作为设置函数选项的最终参数.

  • @skiphoppy:这仍然不像问题中所说的"像UNIX的mkdir -p命令".mkdir的手册页显示<code> -p, - 如果存在则没有错误,根据需要创建父目录</ code>但如果目录存在,make_path将返回false.(即make_path"/ tmp/foo"或死;如果/ tmp/foo存在,#will会死) (3认同)