我只有一个文件名,myfile.txt
我不知道它保存在哪里.如何获得存储文件的确切完整路径.我试过了
$string=`ls /abc/def/*/*/*/*/myfile.txt`;
Run Code Online (Sandbox Code Playgroud)
结果:完整路径是 /abc/def/ghi/jkl/mno/pqr/myfile.txt
我可以通过shell command
使用上面的perl脚本运行来获取完整路径.但是,这需要很长时间才能返回路径.有没有办法通过使用perl找到文件的完整路径?
rai*_*7ow 23
好吧,如果myfile.txt
实际上是该文件的相对路径,那么就有一个核心模块子 - File :: Spec-> rel2abs():
use File::Spec;
...
my $rel_path = 'myfile.txt';
my $abs_path = File::Spec->rel2abs( $rel_path ) ;
Run Code Online (Sandbox Code Playgroud)
...如果你真的需要在你的目录中搜索该文件,那就是File :: Find ...但是我可能会使用shell find / -name myfile.txt -print
命令.
Lip*_*ngo 17
您应该使用Perl模块Cwd来完成此任务.链接有一个例子,如下所示.
#!/usr/bin/perl
use Cwd;
my $dir = getcwd;
use Cwd 'abs_path';
my $abs_path = abs_path($file);
Run Code Online (Sandbox Code Playgroud)