문제

링크의 엄청나게 경로를 가리키는 것이 가능합니까? 간단한 시스템 명령이 있습니까?

다음 모든 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).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top