심볼릭 링크의 원본 파일 찾기


20

홈 디렉토리에있는 파일과 다른 파티션의 다른 파일에 대한 심볼릭 링크가 있다고 가정 해 봅시다. 링크 된 파일의 대상 위치를 어떻게 찾을 수 있습니까? 이것에 의해, 내 말은,의 내가 있다고 가정 해 봅시다 file2/home/user/; 그러나 그것은 다른 것에 대한 상징적 인 링크 file1입니다. file1파일을 찾기 위해 각 파티션 / 디렉토리를 수동으로 거치지 않고 어떻게 찾을 수 있습니까?


1
"원본 파일"로 확장하십시오. 만약 file1에 심볼릭 링크가 있다면 file0? 심볼릭 링크의 마지막 대상을 찾 file0거나 다음 대상을 찾고 싶 file1습니까?
don_crissti

답변:


26

이 시도 :

readlink -f /path/file

(레벨이 하나 이상인 경우 symlink의 마지막 대상)

다음 단계의 심볼릭 링크를 원한다면 다음을 사용하십시오.

readlink /path/file

더 출력을 얻기하지 메신저
K-로커에게

당신은 하나가 있어야합니다! 오류 또는 경로
Gilles Quenot

전혀 아무것도 : user@shell a5$ readlink -f ./student1.java내가 얻을user@shell a5$
K-로커

nvm, 내 심볼릭 링크가 제대로 설정되지 않았습니다. 이유가 확실하지 않습니다. 그러나 나는 새로운 것을 만들었고 작동합니다. 감사합니다.
k-Rocker 2018

2
FWIW readlink /path/file는 다음 목표를 반환합니다.
don_crissti

2

1.

ls -l bin

생산액

lrwxrwxrwx 1 az az 14 Ноя 12 22:13 bin -> ../Gdrive/bin/

2.

file bin

생산액

bin: symbolic link to `../Gdrive/bin/' 

삼.

stat bin

생산액

File: «bin» -> «../Gdrive/bin/»

좋아, 스크립트를 작성하려고하는데 어떻게 사용합니까? 나는 리눅스에 처음이다.
k-Rocker 2018

1
@ k-Rocker 당신이 의도 한 것을 설명한다면 더 좋을 것입니다.
코스타

1

가장 간단한 방법 : cd심볼릭 링크가있는 위치 ls -l에서 파일의 세부 정보를 나열합니다.

->심볼릭 링크 다음 의 오른쪽 부분 은 그것이 가리키는 대상입니다.

전의:

lrwxrwxrwx 1 userName groupName 22 1 월 17 일 13:29 temp.txt에 링크-> /home/user/temp.txt

여기에는 ( ->) "/home/user/temp.txt" 를 가리키는 "temp.txt에 링크 "가 있습니다.

그러나 @Gilles Quenot이 지적한 것처럼 , 당신은 또한 할 수 있습니다readlink -f /path/to/symbolic_link


0

코스타에서 확장

당신이 가지고 있다고 가정

ln -s test.txt sym_link_1.txt
ls -l sym_link_1.txt
lrwxrwxrwx. 1 a1 g1 8 Jan  7 16:59 sym_link_1.txt -> test.txt

스크립트에서 수행 할 수있는 작업 (백틱 사용)

ln -s `readlink sym_link_1.txt` sym_link_2.txt

그럼 당신은

ls -l sym_link_*.txt
lrwxrwxrwx. 1 a1 g1 8 Jan  7 16:59 sym_link_1.txt -> test.txt
lrwxrwxrwx. 1 a1 g1 8 Jan  7 17:01 sym_link_2.txt -> test.txt

0

링크 파일을 찾는 다른 방법 (이전에 대답하지 않은)은 아래 명령을 사용하는 것입니다.

file -h <path_to_dir>/* | grep link

사령부 :

file -h /home/prateek/* | grep link

출력 :

/ home / prateek / Music : / media / prateek / HD-E1 / Music에 대한 심볼릭 링크

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