초보자를 위한 Linux readlink 및 realpath 명령 자습서(예제 포함)
이 페이지에서
- Linux realpath 및 readlink 명령
- Q1. realpath 및 readlink를 사용하여 경로를 확인하는 방법은 무엇입니까?\n
- Q2. 디렉토리를 기준으로 확인된 경로를 인쇄하는 방법은 무엇입니까?\n
- Q3. 경로에서 ..를 제거하는 방법은 무엇입니까?\n
- Q4. 구분 문자를 변경하는 방법은 무엇입니까?\n
- 결론
파일 간의 링크를 생성할 수 있는 ln 명령에 대해 이미 논의했습니다. 그러나 이러한 링크를 해결할 수 있는 도구도 있습니다.
이 자습서에서는 출력에 해결된 심볼릭 링크를 표시한다는 점에서 유사(동일하지 않은 경우) realpath 및 readlink 명령의 기본 사항에 대해 설명합니다. 그러나 그렇게 하기 전에 여기에 있는 모든 예제가 Ubuntu 18.04 LTS 및 Debian 10에서 테스트되었음을 언급할 가치가 있습니다.
Linux realpath 및 readlink 명령
처음에 이미 언급했듯이 realpath 및 readlink 명령은 출력에 symlink에 대해 해결된 경로를 표시합니다.
다음은 구문입니다.
realpath [OPTION]... FILE...
readlink [OPTION]... FILE...
그리고 각 매뉴얼 페이지의 내용은 다음과 같습니다.
Print the resolved absolute file name
print resolved symbolic links or canonical file names
다음은 이러한 도구의 작동 방식에 대한 더 나은 아이디어를 제공하는 몇 가지 Q&A 스타일의 예입니다.
Q1. realpath 및 readlink를 사용하여 경로를 확인하는 방법은 무엇입니까?
간단합니다. 파일이나 경로를 입력으로 제공하기만 하면 됩니다. 다음 예에서는 기호 링크를 확인하는 두 명령을 모두 보여줍니다.
경로 작업 방법은 다음과 같습니다.
따라서 두 가지 경우에서 두 명령이 성공적으로 심볼릭 링크를 해결한 것을 볼 수 있습니다.
Q2. 디렉토리를 기준으로 확인된 경로를 인쇄하는 방법은 무엇입니까?
realpath 명령을 사용하면 이 작업을 쉽게 수행할 수 있습니다. 예를 들어 다음과 같이 하려고 한다고 가정합니다.
realpath /var/local/Downloadslink
그러나 추가 요구 사항은 이 명령의 출력이 /home/himanshu 디렉토리에 상대적이어야 한다는 것입니다. 그런 다음 실행해야 하는 명령은 다음과 같습니다.
realpath /var/local/Downloadslink --relative-to=/home/himanshu
결과는 다음과 같습니다.
Downloads
따라서 --relative-to 옵션을 사용하면 /home/himanshu 디렉토리에 상대적인 출력을 얻을 수 있음을 알 수 있습니다.
Q3. 경로에서 ..를 제거하는 방법은 무엇입니까?
심볼릭 링크를 확장/해결하는 것이 목표가 아니라 경로에서 ..를 제거하는 경우가 있을 수 있습니다. realpath 명령을 사용하면 이 작업을 수행할 수 있습니다.
-s 명령줄 옵션을 사용하기만 하면 됩니다. 예를 들면 다음과 같습니다.
realpath -s ../../var/local/Downloadslink
다음은 이 명령의 출력입니다.
/var/local/Downloadslink
Q4. 구분 문자를 변경하는 방법은 무엇입니까?
기본적으로 개행 문자가 구분 문자로 사용됩니다. 그러나 두 명령 모두 대신 NUL을 구분 기호로 사용하는 방법을 제공합니다.
두 경우 모두 사용해야 하는 옵션은 -z입니다.
realpath -z [FILE/PATH]
readlink -z [FILE/PATH]
결론
여기서 논의한 내용은 이러한 명령이 제공하는 몇 가지 옵션/기능에 불과합니다. 이러한 연습을 마치면 readlink 및 realpath 매뉴얼 페이지(여기)로 이동하여 이러한 도구에 대해 자세히 알아보세요.