Perl基础学习12之 Perl中 Cwd FindBin File::Basename模块获取路径用法

目录

 

FindBin

$Bin

$Script

Cwd 

getcwd() cwd() fastcwd() fastgetcwd()

abs_path

File::Basename


 

FindBin

  • $Bin

返回被执行的脚本绝对路径

  • $Script

返回被执行的脚本名称;

 

Cwd 

  • getcwd() cwd() fastcwd() fastgetcwd()

Cwd 模块默认载入以上四函数,返回执行脚本的路径

例如您在/home/test 下执行了perl hello.pl,则以上四函数均返回/home/test;

  • abs_path

需要自己载入,即 use Cwd qw(abs_path);

abs_path($file) 返回绝对路径/$file

例如,

#!/usr/bin/perl
use strict;
use warnings;

use FindBin qw($Bin $Script $RealBin $RealScript);
#use Cwd qw(abs_path);
use Cwd;
#默认导入函数 cwd(), getcwd(), fastcwd()及fastgetcwd()
use Cwd qw(abs_path);


print "$Bin\n";#$Bin 返回脚本的绝对路径
print "$Script\n";#$Script返回脚本名字
print "$RealBin\n";
print "$RealScript\n";

#getcwd() cwd() fastcwd() fastgetcwd() 获取当前"执行程序"的路径
my $dir = getcwd();
my $dir1 = cwd();
my $dir2 = fastcwd();
my $dir3 = fastgetcwd();
print "\n";
print "$dir\n";
print "$dir1\n";
print "$dir2\n";
print "$dir3\n";

print "\n";
my $abs_path = abs_path($Script);#返回$Script绝对路径/$Script
print "$abs_path\n";

cd /home/study/perl/#执行脚本的路径

perl test/findbin.pl
/home/study/perl/test#被执行脚本所在路径
findbin.pl
/home/study/perl/test
findbin.pl

/home/study/perl/#返回执行脚本的路径
/home/study/perl/
/home/study/perl/
/home/study/perl/
/home/study/perl/findbin.pl#返回执行脚本的路径/被执行脚本

 

File::Basename

File::Basename模块拆分路径

例如,path.pl

#! /usr/bin/perl
use strict;
use warnings;
 
use File::Basename;
my $path = $ARGV[0];
my($filename, $dirs, $suffix) = fileparse($path,qr/\.[^.]*/);
#以上分别为文件名,文件绝对路径,文件后缀名
print"$filename\t$dirs\t$suffix\n";
 
my $filename1=basename($path);#默认返回带后缀文件名
my $dirname1=dirname($path);#返回绝对路径
print "$filename1\t$dirname1\n";

perl path.pl /home/study/max.pl
max     /home/study/    .pl
max.pl  /home/study 

参考资料

https://perldoc.perl.org/Cwd.html

https://perldoc.perl.org/FindBin.html

https://perldoc.perl.org/File/Basename.html

 

 

 

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页