0
가장 짧은 상대 경로를 사용하려면 주어진 디렉토리의 모든 심볼릭 링크를 변경해야합니다.심볼릭 링크 변경
예 : 변화
나는이 사용하는 펄을 할 수있는 방법kat/link
에
kat/../kat/link
또는
usr/sth/sth/kat/link
?
가장 짧은 상대 경로를 사용하려면 주어진 디렉토리의 모든 심볼릭 링크를 변경해야합니다.심볼릭 링크 변경
예 : 변화
나는이 사용하는 펄을 할 수있는 방법kat/link
에
kat/../kat/link
또는
usr/sth/sth/kat/link
?
당신은 상대하기 위해 제거 후 현재 디렉토리를 abs_path
를 사용하여 간단하게 경로를 얻을 수 있습니다 :
use warnings;
use strict;
use Cwd qw/getcwd abs_path/;
my $silly_path = 'foo/../foo/../foo/../foo';
my $simplified = abs_path($silly_path);
my $cwd = getcwd();
print "Canonical path: $simplified\n";
print "Current directory: $cwd\n";
$simplified =~ s|^\Q$cwd/||; #Make relative if within current directory.
print "Simplified path: $simplified\n";
이 링크는 펄의 현재 작업 디렉토리에 있다고 가정합니다. 원하는 경우 다른 디렉토리로 대체 할 수 있습니다. 현재 디렉토리 내의 링크에 대한 상대 경로 또는 현재 디렉토리 외부를 가리키는 단순 경로의 절대 경로가됩니다.
glob을 사용하여 디렉토리의 모든 파일을 가져온 다음 -l $file
file test operator을 사용하여 $file
이 심볼 링크인지 테스트 할 수 있습니다.
펄이 아닙니다. Perl입니다. – Futuregeek
예, 편집을위한 thx : – Kmaczek
당신은 무엇을 시도 했습니까? – devnull