我只有一个文件名,myfile.txt
我不确定它保存在哪里。如何获得存储文件的确切完整路径?
我努力了
$string=`ls /abc/def/*/*/*/*/myfile.txt`;
结果:完整路径是/abc/def/ghi/jkl/mno/pqr/myfile.txt
shell command
我可以通过使用上面的 Perl 脚本运行来获得完整路径。然而,这需要很长时间才能返回路径。这是一种使用 Perl 查找文件完整路径的方法吗?
我只有一个文件名,myfile.txt
我不确定它保存在哪里。如何获得存储文件的确切完整路径?
我努力了
$string=`ls /abc/def/*/*/*/*/myfile.txt`;
结果:完整路径是/abc/def/ghi/jkl/mno/pqr/myfile.txt
shell command
我可以通过使用上面的 Perl 脚本运行来获得完整路径。然而,这需要很长时间才能返回路径。这是一种使用 Perl 查找文件完整路径的方法吗?
好吧,如果myfile.txt
实际上是该文件的相对路径,则有一个核心模块子 - File::Spec->rel2abs():
use File::Spec;
...
my $rel_path = 'myfile.txt';
my $abs_path = File::Spec->rel2abs( $rel_path ) ;
...如果您确实需要在目录中搜索该文件,则可以使用 File::Find... 但我可能会使用 shellfind / -name myfile.txt -print
命令。
您应该使用 Perl 模块Cwd来完成此操作。该链接还有一个示例,如下所示。
#!/usr/bin/perl
use Cwd;
my $dir = getcwd;
use Cwd 'abs_path';
my $abs_path = abs_path($file);
我们可以从系统上的任何地方查看,但在这种情况下,我们是从“/abc/def”文件夹中查看。
$start_path = "/abc/def/";
@files = <$start_path*/myfile.txt>
foreach $file(@files) {
print $file; # Prints the full path of the file.
}
在Linux中使用pwd
而不是cd
获取当前目录的路径没有功能,
$path='cd';
$path =~ tr /\\/\//;
chomp($path);
print "$path";