>  기사  >  운영 및 유지보수  >  Linux 파일 링크 및 해당 응용 프로그램 소개

Linux 파일 링크 및 해당 응용 프로그램 소개

齐天大圣
齐天大圣원래의
2020-06-20 11:13:492260검색

Linux에는 두 가지 유형의 파일 링크가 있습니다. 하나는 하드 링크이고 다른 하나는 소프트 링크입니다. 오늘은 이 두 가지 링크와 사용법을 소개하겠습니다.

하드 링크

먼저 하드 링크를 PHP의 변수 참조를 사용하여 비교해 보겠습니다.

$a = 100;
$b = &$a;

$a는 파일로 볼 수 있고, $b는 $a 파일에 대한 하드 링크로 볼 수 있습니다. 현재 효과는 $a 또는 $b가 수정되더라도 상대방에게 영향을 미친다는 것입니다.

이제 파일 중 하나를 삭제하면 다른 파일은 그대로 유지되나요?

unset($b);

$b 파일을 삭제해도 $a 파일은 여전히 ​​존재합니다.

다음으로 위에서 말한 내용과 같은지 확인해 보겠습니다. 하드 링크를 생성하는 명령은 다음과 같습니다.

ln 源文件 链接文件

현재 시스템에는 1.php 파일이 있습니다. 이제 이에 대한 하드 링크를 생성해 보겠습니다.

# ln 1.php 2.php

# cat 1.php

이제 2.php 파일을 수정하여 1.php 파일도 수정되는지 확인해 보겠습니다.

# echo -e '\n?>' >> 2.php

# cat 1.php

2.php를 수정하면 1.php 파일도 수정되는 것을 볼 수 있습니다. 이제 2.php 파일을 삭제하고 1.php 파일이 아직 존재하는지 확인해 보겠습니다.

# rm -f 2.php
# ll 1.php
-rw-r--r-- 1 root root 52 Jun 20 08:05 1.php

2.php를 삭제해도 1.php 파일은 그대로 남아있는 것을 볼 수 있습니다.

하드 링크 기능은 위에 소개되어 있습니다. 하드 링크 사용에 대한 제한 사항은 다음과 같습니다.

  • 디렉토리를 연결할 수 없습니다.

  • 파일 시스템 간에 연결할 수 없습니다.

위 두 가지의 제한으로 인해 포인트 결과적으로 일상생활에서 하드링크를 사용할 기회가 거의 없는데, 또 다른 종류의 링크인 소프트링크는 위와 같은 제한사항이 없어 많이 사용됩니다! .

소프트 링크

일반적으로 소프트 링크는 Windows 시스템의 바탕 화면 바로 가기와 비교됩니다. 소프트 링크를 생성하면 파일의 디렉터리 위치를 찾을 필요 없이 쉽게 명령을 실행할 수 있습니다. 또한 소프트링크 파일은 삭제되지만 소스파일은 여전히 ​​존재합니다. 단, 원본 파일을 삭제하면 링크된 파일은 아무런 영향을 받지 않습니다.

소프트 링크는 파일과 디렉터리의 두 가지 유형으로 구분됩니다. 이 두 링크의 기능은 아래에 소개되어 있습니다.

파일에 대한 소프트 링크 만들기

mysql을 설치한 후 절대 경로를 사용하지 않고 mysql을 사용하여 실행할 수 있는 이유가 궁금하신가요? 여기에는 소프트 링크가 사용됩니다.

# which mysql
/usr/bin/mysql
# ll /usr/bin/mysql
lrwxrwxrwx 1 root root 26 Nov  4  2019 /usr/bin/mysql -> /usr/local/mysql/bin/mysql

명령어의 실제 주소는 /usr/local/mysql/bin/mysql임을 알 수 있는데 /usr/bin/ 디렉터리에 해당 파일에 대한 소프트 링크가 만들어지므로 굳이 그럴 필요는 없다. 절대 경로를 사용하여 호출하세요. 이제 주문할 차례입니다.

이런 경우가 있는지 직접 파일 소프트링크를 만들어 보겠습니다.

먼저 파일을 만듭니다. , 주의할 점이 있습니다. 예,

소프트 링크를 만들 때 대상 파일이나 디렉터리가 존재하지 않아야 합니다.

아래에서는 매우 일반적인 시나리오를 소개합니다. 웹사이트 파일은 /www/wwwroot 디렉터리에 저장됩니다. 시스템 실행 시간이 점점 더 나빠질수록 디렉터리는 점점 더 커집니다. 루트 디렉터리와 동일한 파티션에 있으며 루트 디렉터리가 거의 가득 찼습니다. 다른 파티션 디렉터리 /data에는 여전히 99G의 남은 공간이 있습니다. 이때, 다시 파티션을 나누고 싶지 않다면, 루트 디렉터리가 위치한 파티션을 해제하려면 어떻게 해야 할까요? 아래에서는 이 문제를 해결하기 위해 디렉토리 소프트 링크를 사용합니다. 먼저 /data 디렉터리에 wwwroot 디렉터리를 생성한 후 /www/wwwroot 디렉터리의 모든 파일을 /data/wwwfile로 이동한 후 /www/wwwroot 디렉터리를 삭제합니다. 마지막으로 /data/wwwfile 디렉토리에 /www/wwwroot

vim soft

#!/bin/bash
echo 'study softlink'

# chmod u+x soft

에 대한 소프트 링크를 제공합니다. 이제 문제가 실제로 해결되었는지 테스트해 보겠습니다. 현재 루트 파티션 사용량은 19%이고, /data 파티션 사용량은 9%입니다.

# ln -s /root/soft  /usr/bin/
# soft
study softlink
/www/wwwroot 디렉터리에 2G 대용량 파일을 생성한 후 어느 파티션의 용량이 늘어났는지 확인합니다. 우리가 원하는 대답은 /data 파티션 사용량이 높아졌지만 루트 파티션은 변경되지 않았다는 것입니다.

mkdir /data/wwwfile
mv /www/wwwroot/* /data/wwwfile
rm -rf /www/wwwroot
ln -s /data/wwwfile /www/wwwroot

루트 파티션의 사용 가능한 용량은 여전히 ​​33G인 것을 볼 수 있는데, /data 파티션이 458G에서 456G로 변경되어 문제가 해결되었습니다.

위 내용은 Linux 파일 링크 및 해당 응용 프로그램 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.