가리키는 링크의 경로를 얻습니까?
문제
링크의 엄청나게 경로를 가리키는 것이 가능합니까? 간단한 시스템 명령이 있습니까?
다음 모든 OS HP-ux 11i, 1123U, 1123i AIX 5.2 및 5.3 Suse Linux 10 Solaris 10이 필요합니다.
해결책
당신은 언어를 지정하지 않았으므로 사용중인 쉘에서 실행할 수있는 명령을 원한다고 가정합니다. 그만큼 ls
명령은 다음과 같습니다 -l
파일에 대한 많은 정보를 인쇄하는 옵션. 마지막 정보는 전체 경로이므로 말할 수 있어야합니다.
ls -l file | awk '{print $NF}'
모든 SUS2 호환기 (모든 상업적 유닉스 여야 함)에서. 파일이나 파일로 이어지는 디렉토리에 공간이있는 경우 파일이나 디렉토리에 문제가 발생합니다.
다른 팁
시스템 통화를 찾고 있다면 readlink(2)
. 이는 표준화되므로 모든 POSIX 호환 시스템에서 사용할 수 있어야합니다.
다음은 이전에 주어진 링크에서 가져온 사용의 예입니다.
#include <unistd.h>
char buf[1024];
ssizet_t len;
if ((len = readlink("/modules/pass1", buf, sizeof(buf)-1)) != -1)
buf[len] = '\0';
명령 줄 유틸리티를 찾고 있다면 표준화 된 것 같지는 않지만 암소 비슷한 일종의 영양 (Linux) 및 BSD 둘 다 가지고 있습니다 readlink(1)
.
제휴하지 않습니다 StackOverflow