손실 된 심볼릭 링크 상태 수정 [닫힘]


1

링크 상태를 잃어 버렸고 다음을 포함하는 일반 파일이 된 소프트 심볼릭 링크가 몇 개 있습니다.

TARGET_FILE_LOCATION 링크

링크 상태를 복원하는 방법을 찾기 위해 꽤 많이 검색했지만 찾을 수 없었습니다.

답변:


0

사소한 Perl 스크립트로 이것을 고칠 수 있습니다 :

#!/usr/bin/perl

use strict;
my $progname = $0; $progname =~ s@^.*/@@;

# accept path of bogued "link" file on command line
my $file = shift()
  or die "$progname: usage: $progname <file>\n";

my $content = '';
my $target = '';

# read the bogued file to find out where the symlink should point
open my $fh, '<', $file
  or die "$progname: unable to open $file: $!\n";

# parse the target path out of the file content
$content = <$fh>;
die "$progname: $file content in bogus format\n"
  unless $content =~ m@^link (.*)\r?\n$@;
$target = $1;

close $fh;

# delete the bogued file
unlink $file
  or die "$progname: unable to unlink $file: $!\n";

# replace it with the correct symlink
system('ln', '-s', $target, $file);

스크립트를 fixlink.pl과 같은 파일에 놓은 다음로 호출 perl fixlink.pl /path/to/bogued/symlink하면 파일에서 대상을 읽고 파일을 해당 대상에 대한 심볼릭 링크로 바꿉니다 .

물론 이것은 실제로 문제를 일으키는 모든 것을 해결하기 위해 아무 것도하지 않지만, 원인을 해결하고 해결할 수있을 때까지는 인생을 더 단순하게 만들어야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.