>  기사  >  시스템 튜토리얼  >  Linux에서 심볼릭 링크를 만드는 방법 [전체 가이드]

Linux에서 심볼릭 링크를 만드는 방법 [전체 가이드]

WBOY
WBOY앞으로
2024-02-09 14:21:23981검색

소프트 링크 또는 Symlink라고도 알려진 기호 링크는 특별한 유형의 파일입니다. 다른 파일이나 디렉터리를 가리키는 Windows의 바로가기와 비슷합니다. 심볼릭 링크를 만드는 것은 실제 파일에 대한 별칭을 만드는 것과 같습니다.

심볼릭 링크에 액세스하면 실제로는 심볼릭 링크가 가리키는 대상 파일에 액세스하는 것입니다. 링크된 파일의 내용을 변경하면 실제 대상 파일의 내용에 영향을 줍니다.

기호 링크를 표시하려면 -l 옵션과 함께 ls 명령을 사용하세요. 그 내용은 다음과 같습니다:

으아악 如何在 Linux 中创建符号链接 [完整指南]

심볼릭 링크는 파일을 정리하고 공유하는 편리한 방법을 제공합니다. 길고 혼란스러운 디렉토리 경로에 대한 빠른 액세스를 제공합니다. 이는 라이브러리 연결을 위해 Linux에서 많이 사용됩니다.

이제 심볼릭 링크에 대해 알았으니 심볼릭 링크를 만드는 방법을 살펴보겠습니다.

Linux에서 심볼릭 링크를 만드는 방법

링크 이름에서 대상 파일으로의 심볼릭 링크를 생성하려면 ​​다음과 같이 -s 옵션과 함께 ln 명령을 사용할 수 있습니다.

으아악 여기서

-s 옵션이 중요합니다. 링크를 소프트 링크로 결정합니다. 사용하지 않으면 하드 링크가 생성됩니다. 소프트링크와 하드링크의 차이점에 대해서는 다른 글에서 설명하겠습니다.

심볼릭 링크를 따르는 방법

링크가 실제로 가리키는 실제 파일을 확인하려면 realpath 명령을 사용하세요.

으아악

소스 파일에 대한 소프트 링크를 추적하는 다른 방법이 있지만 realpath가 가장 간단합니다.

如何在 Linux 中创建符号链接 [完整指南]

심볼릭 링크 삭제 방법

Linux에서는 심볼릭 링크를 삭제하는 특별한 명령이 없습니다. 파일과 디렉터리를 삭제하는 데 사용하는 것과 동일한 rm 명령을 사용할 수 있습니다.

lrwxrwxrwx 1 linuxmi linuxmi     11  2月 1日 18:58 linuxmi.md -> linuxmi.dat
如何在 Linux 中创建符号链接 [完整指南]

링크를 삭제해도 링크된 원본 파일은 삭제되지 않습니다.

한 명령으로 여러 개의 심볼릭 링크를 삭제할 수도 있습니다:

ln -s target_file link_name

연결 해제 명령도 있습니다. 그러나 이름에서 알 수 있듯이 unlink 명령은 링크를 삭제하는 데 특별히 사용되지 않습니다. 물론 파일, 폴더, 링크도 삭제할 수 있습니다. 그러나 특정 제한 사항이 있으므로 링크를 제거하는 경우에도 rm 명령이 더 나은 선택입니다.

💡find 명령을 사용하여 심볼릭 링크를 나열하려면 *-type l 옵션을 사용할 수 있습니다. *

심볼릭 링크에 대한 참고사항

심볼릭 링크는 때때로 혼란스러울 수 있으므로 주의해야 할 몇 가지 사항이 있습니다.

링크 변경사항은 원본파일에 반영됩니다

결국 링크의 목적은 그게 전부입니다. 링크에 접속하면 대상 파일에 접근할 수 있습니다. 링크를 통해 대상 파일을 변경할 수 있습니다. 예를 살펴보겠습니다.

newdir/test_dir에 prog.py 파일이 있습니다. 다음과 같은 속성이 있습니다:

┌──(linuxmi㉿linuxmi)-[~]
└─$ ln -s /home/linuxmi/linuxmi.com/linuxmi/linuxmi.py test
如何在 Linux 中创建符号链接 [完整指南]

以下是新创建链接的属性:

lrwxrwxrwx 1 linuxmi linuxmi     44  2月 1日 19:24 test -> /home/linuxmi/linuxmi.com/linuxmi/linuxmi.py

注意到行首的 l(是 L,不是一 1)了吗?如果你熟悉 Linux 中的文件权限,你就会知道’l’表示链接,因此它告诉你这个文件实际上是一个链接。提个醒,- 表示文件,d 表示目录。

现在,如果我使用此链接更改内容或属性,同样会反映在目标文件中。例如,我在软链接上使用 touch 命令,你会注意到它改变了目标文件的时间戳。

┌──(linuxmi㉿linuxmi)-[~/linuxmi]
└─$ touch test
                                                                           
┌──(linuxmi㉿linuxmi)-[~/linuxmi]
└─$ ls -l /home/linuxmi/linuxmi.com/linuxmi/linuxmi.py
-rw-r--r-- 1 linuxmi linuxmi 1926  2月 1日 19:27 /home/linuxmi/linuxmi.com/linuxmi/linuxmi.py

它链接到文件还是目录?你可能不知道!

您如何知道链接指向的是文件还是目录?在您按照路径访问目标文件本身之前,您无法知道这一点。

您可以创建指向不存在的文件或目录的链接

是的,这完全有可能。这就是为什么在 Linux 中创建软链接时应该小心的原因。您链接到的目标文件不需要存在。创建指向不存在的文件/目录的链接时,您不会收到任何错误或警告。

ls 命令仍然有效。仅当您尝试通过链接或单独访问目标文件时才会出现错误。

┌──(linuxmi㉿linuxmi)-[~/linuxmi]
└─$ ln -s non_existant_dir link_dir
                                                                           
┌──(linuxmi㉿linuxmi)-[~/linuxmi]
└─$ less link_dir
link_dir: 没有那个文件或目录
如何在 Linux 中创建符号链接 [完整指南]

符号链接是使用 777 权限创建的,但它没有任何意义

您是否注意到符号链接上的文件权限?符号链接始终使用 777 权限 (rwxrwxrwx) 创建。对于常规文件,这意味着任何人都可以访问该文件。但链接并非如此。

lrwxrwxrwx 1 linuxmi linuxmi 11 2月 1日 18:58 linuxmi.md -> linuxmi.dat
如果链接上的文件权限按原样处理,任何用户都可以创建指向安全文件的符号链接并自由访问它。那将是一个主要的安全问题。值得庆幸的是,这不会发生。因为目标文件的权限很重要,而不是链接的权限。

您可以使用 chmod 命令更改链接的权限,但它会更改链接文件的权限,而不是链接本身。

您可以链接到一个链接的链接,也就是链式符号链接

您可以创建指向另一个链接的符号链接等等。这称为链式符号链接。最好避免使用它们,因为它会造成更多混乱。

嗯,就是这样。我假设您现在对软链接有了更好的了解,并且您知道如何在 Linux 中创建符号链接。您也可以查看 symlinks 命令,它可以帮助您在 Linux 中找到损坏的符号链接并轻松管理它们。

위 내용은 Linux에서 심볼릭 링크를 만드는 방법 [전체 가이드]의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 lxlinux.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제