在我的perl脚本中,我有了param $FILE=/etc/sysconfig/network
以哪种方式(在perl中)我只能剪切目录并将目录放在$ DIR param中
为了得到:
$DIR=/etc/sysconfig
(like dirname /etc/sysconfig/network in shell script)
Run Code Online (Sandbox Code Playgroud)
Sch*_*ern 37
小心! dirname()故意愚蠢地模仿dirnameshell命令.它并不是"给我这个文件路径的目录部分"作为"除了这条路径的最后一部分之外给我所有".为什么这很重要?
my $dir = "/foo/bar/"; # obviously a directory
print dirname($dir); # prints /foo
Run Code Online (Sandbox Code Playgroud)
这很好,只要你意识到dirname不返回dirname.
如果你想让上面的内容返回,/foo/bar/你最好使用File :: Spec.
use File::Spec;
my($vol,$dir,$file) = File::Spec->splitpath($path);
Run Code Online (Sandbox Code Playgroud)
Mic*_*sov 28
use File::Basename;
($name,$path,$suffix) = fileparse($fullname,@suffixlist);
$name = fileparse($fullname,@suffixlist);
$basename = basename($fullname,@suffixlist);
$dirname = dirname($fullname);
Run Code Online (Sandbox Code Playgroud)
在perldoc中阅读有关File :: Basename的更多信息.
使用File :: Basename核心模块:
use strict;
use warnings;
use File::Basename;
my $FILE = '/etc/sysconfig/network';
my $DIR = dirname($FILE);
print $DIR, "\n";
Run Code Online (Sandbox Code Playgroud)
打印输出:
/ etc / sysconfig
| 归档时间: |
|
| 查看次数: |
41750 次 |
| 最近记录: |