如何从perl中的当前工作目录向后移动一个级别

时间:2014-03-10 06:34:10

标签: windows perl

我正在尝试从当前工作目录中移回一个级别,但是没有成功执行此操作。

use strict;
use warnings;
use Cwd qw();
my $path = Cwd::cwd();
print "Debug : $path\n";

从上面的代码我可以得到当前的工作目录,但需要返回一级。

Exp: 当前工作目录='C:/ abc / tmp / folder' 需要的目录='C:/ abc / tmp'

4 个答案:

答案 0 :(得分:4)

您无需任何模块即可更改当前工作目录。刚

chdir '..';

将做你需要的。

chdir是一个内置运算符,因此无需安装任何内容。

答案 1 :(得分:-1)

看看File::Basename。检查'fileparse()'或'dirname()'方法。

答案 2 :(得分:-1)

您需要实际尝试转到上一级目录,即在某处使用.. ...

#!/usr/bin/perl -w
use strict;
use Cwd 'abs_path';

my $path = Cwd::cwd();
print abs_path($path . '/..');

答案 3 :(得分:-1)

我不确定Perl chdir()函数是否接受“ ..”参数。如果它 可以,您可以这样做:

chdir("..");

进入目录。

否则,您将必须执行以下操作:

$currdir = `pwd`; chomp $currdir; # gets current directory
$currdir =~ s/ \/[^\/]+$//; # removes the last / and everything after it
chdir($currdir);