리눅스 명령어 · 1 min read · Oct 26, 2025

리눅스 readlink 및 realpath 명령어 초보자 튜토리얼 (예제 포함)

우리는 이미 파일 간의 링크를 생성할 수 있는 ln 명령어에 대해 논의했습니다. 그러나 일부 도구는 이러한 링크를 해결할 수 있습니다.

이 튜토리얼에서는 출력에서 해결된 심볼릭 링크를 표시하는 점에서 유사한 realpathreadlink 명령어의 기본 사항에 대해 논의할 것입니다. 그러나 그 전에, 여기의 모든 예제가 Ubuntu 24.04 LTS 및 Debian 12에서 테스트되었다는 점을 언급할 가치가 있습니다.

리눅스 realpath 및 readlink 명령어

처음에 언급했듯이, realpath 및 readlink 명령어는 출력에서 symlink의 해결된 경로를 표시합니다.

다음은 그들의 구문입니다:

realpath [OPTION]... FILE...
readlink [OPTION]... FILE...

그리고 그들의 각각의 man 페이지에서 다음과 같이 설명합니다:

Print the resolved absolute file name
print resolved symbolic links or canonical file names

다음은 이러한 도구가 어떻게 작동하는지에 대한 더 나은 아이디어를 제공해야 하는 Q&A 스타일의 몇 가지 예입니다.

Q1. realpath 및 readlink를 사용하여 경로를 해결하는 방법은?

간단합니다: 파일 또는 경로를 입력으로 제공하기만 하면 됩니다. 다음 예제는 이 두 명령어가 심볼릭 링크를 해결하는 모습을 보여줍니다.

그리고 경로와 함께 작동하는 방식은 다음과 같습니다:

따라서 두 경우 모두 명령어가 성공적으로 symlink를 해결한 것을 볼 수 있습니다.

Q2. 디렉토리에 상대적인 해결된 경로를 인쇄하는 방법은?

realpath 명령어를 사용하면 쉽게 할 수 있습니다. 예를 들어, 다음과 같은 작업을 하려고 한다고 가정해 보겠습니다:

realpath /var/local/Downloadslink

그러나 이 명령의 출력이 /home/himanshu 디렉토리에 상대적이어야 한다는 추가 요구 사항이 있습니다. 그러면 실행해야 할 명령은 다음과 같습니다:

realpath /var/local/Downloadslink --relative-to=/home/himanshu

출력은 다음과 같습니다:

Downloads

따라서 ‘–relative-to’ 옵션을 사용하여 /home/himanshu 디렉토리에 상대적인 출력을 얻을 수 있음을 알 수 있습니다.

Q3. 경로에서 ..을 제거하는 방법은?

때때로 symlink를 확장/해결하는 것이 목표가 아니라 경로에서 ..을 제거하는 것이 목표일 수 있습니다. realpath 명령어를 사용하면 이를 수행할 수 있습니다.

해야 할 일은 -s 명령줄 옵션을 사용하는 것입니다. 예는 다음과 같습니다:

realpath -s ../../var/local/Downloadslink

그리고 이 명령의 출력은 다음과 같습니다:

/var/local/Downloadslink

Q4. 구분 기호 문자를 변경하는 방법은?

기본적으로 줄 바꿈이 구분 기호 문자로 사용됩니다. 그러나 두 명령어 모두 NUL을 구분 기호로 사용할 수 있는 방법을 제공합니다.

두 경우 모두 사용해야 하는 옵션은 -z입니다.

realpath -z [FILE/PATH]
readlink -z [FILE/PATH]

결론

우리는 여기에서 이 명령어들이 제공하는 몇 가지 옵션/기능에 대해 논의했습니다. 이러한 연습을 마친 후, readlink 및 realpath man 페이지(여기 및 여기)로 가서 이러한 도구에 대해 더 알아보세요.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.