Linux의 상징적 인 링크는 환상적인 기능이지만 아무 것도 부러 질 수 있고 아무 것도 가리킬 수 없습니다. 깨진 심볼릭 링크를 찾고 검토하고 필요한 경우 시스템에서 제거하는 방법은 다음과 같습니다.
기호 링크 101.
상징적 인 링크 "소프트 링크"및 "symlinks"라고도하는 바로 가기는 파일 및 디렉토리를 가리킬 수있는 바로 가기입니다. 심볼릭 링크는 파일 관리자 창에서 일반 파일이나 디렉토리처럼 보입니다. 또한 터미널 창에서 파일 목록에있는 항목으로 표시됩니다. 파일 시스템 트리의 파일 또는 디렉토리가 파일 시스템 트리의 어느 곳에서나있을 수있는 디렉토리입니다.
예를 들어, 파일 시스템 트리의 어딘가에있는 "text-file.txt"라는 파일을 가리키는 "dave-link"라는 홈 디렉토리에 symlink가 있다고 가정 해 봅시다. Symlink에서 사용하는 명령은 자동으로 IT 포인트의 파일에 적용됩니다. 사용하려고하면
고양이
또는
더 적은
심볼릭 링크에서 실제로 "text-file.txt"파일의 내용이 표시됩니다.
표준 Linux 설치에는 많은 심볼릭 링크가 포함되어 있습니다. 자신을 만들지 않더라도 운영 체제는 이들을 사용합니다. 응용 프로그램 설치 루틴은 종종 Symlinks를 사용하여 실행 파일 파일을 가리 킵니다. 소프트웨어가 업데이트되면 바이너리 파일이 새 버전으로 바뀝니다. 새 파일의 이름이 이전 파일의 이름이 이전과 같이 이전과 같이 작동합니다.
우리는 사용하여 일부 심볼릭 링크를 쉽게 볼 수 있습니다
Ls.
루트 디렉토리에서. 일부 항목은 다른 색상으로 표시됩니다.
우분투 20.10.
테스트 기계, 그들은 밝은 파란색으로 표시됩니다.
우리는 다음을 입력합니다.
LS /
우리는 그를 사용하여 더 깊은 모양을 취할 수 있습니다
-엘
(긴 목록) 옵션. 우리는 모든 "lib"항목과 단일 "bin"항목을 보려면 다음 명령을 입력합니다.
ls -l / lib * / bin
각 행의 시작 부분에는 항목이 심볼릭 링크 인 "L"이 표시됩니다. 텍스트는 "- & gt;" 심볼릭 링크가 가리키는 것에 보여줍니다. 이 예에서는 대상이 모든 디렉토리입니다.
사용 권한은 소유자, 그룹 및 기타에 대해 읽기, 쓰기 및 실행으로 나열됩니다. 이들은 기본 가짜 항목입니다. 심볼릭 링크가 지적하는 객체에 대한 실제 사용 권한을 반영하지 않습니다. 그것은 우선 순위가 우선하고 파일 시스템에 의해 영예를 가져 오는 대상 파일이나 디렉토리에 대한 사용 권한입니다.
깨진 심볼 링크
포인트가 삭제되거나 다른 위치로 이동 될 때 심볼릭 링크가 끊어졌습니다 (또는 매달려). 응용 프로그램의 제거 루틴이 제대로 작동하지 않거나 완료되기 전에 중단되지 않으면 고장난 심볼릭 링크가 남아있을 수 있습니다.
Symlinks가 지적하지 않고 파일을 수동으로 삭제하면 해당 Symlinks가 더 이상 작동하지 않습니다. 그들은 불도제가있는 도시를 가리키는 도로 표지판처럼 될 것입니다.
현재 디렉토리에서 "hello"라는 symlink를 사용 하여이 동작을 쉽게 볼 수 있습니다. 우리는 다음을 입력합니다
Ls.
그것을 보는 것:
ls -l
"bin"이라는 디렉토리에서 "htg"라는 프로그램을 가리 킵니다. Symlink를 "실행"하면 다음과 같은 프로그램을 실행합니다.
./ Hello
이제 프로그램을 직접 실행하여 이러한 일이 일어나는지 확인할 수 있습니다.
.. / bin / htg
예상대로, 우리는 동일한 반응을 얻습니다. 프로그램 파일을 삭제 해 보겠습니다.
RM ../bin/htg
이제 우리가 심볼릭 링크를 볼 때 Linux가 부러 졌음을 알고 있기 때문에 빨간색으로 나열되어 있습니다. 또한 포인트하는 것이 무엇인지 알려줍니다. 그래서 우리는 파일을 교체하고 프로그램을 다시 컴파일하거나 심볼릭 링크를 복구하는 데 필요한 모든 작업을 수행 할 수 있습니다.
Symlink를 실행하려고하면 Symlink 포인트가있는 프로그램의 이름이 아니라 Symlink 이름을 참조하는 오류가 발생합니다.
우리는 다음을 입력합니다.
./ Hello
깨진 심볼릭 링크 찾기
대부분의 현대적인 버전
찾기
~을 가지고있다
xtype.
(확장 유형) 옵션,
깨진 심볼릭 링크를 발견하는 단순화
...에 우리는을 사용합니다
엘
플래그
xtype.
링크를 검색하도록 지시합니다. 사용
찾기
그리고
xtype.
같은 다른 어떤없이, 다음
유형
플래그, 세력
xtype.
깨진 링크를 반환합니다 :
에서 찾을 수 있습니다. -xtype L
우리의 테스트 홈 디렉토리에있는 명령을 실행하면 꽤 많은 깨진 심볼릭 링크를 찾습니다. 검색은 기본적으로 재귀 것을 참고, 그래서 자동으로 모든 하위 디렉토리를 검색합니다.
는 "안녕하세요"우리가 예상 한대로 우리가 나열되어 목적에 파산 심볼릭 링크. 다른 심볼릭 링크 중 하나가 파이어 폭스 브라우저에 관련되고, 나머지는 스냅과 연결되어 있습니다.
우리가 파이프 출력을 통해하는 경우
화장실
이랑
-엘
(선) 옵션, 우리는 깨진 심볼릭 링크를 계산과 같은 인 라인을 셀 수 있습니다.
우리는 다음을 입력합니다.
에서 찾을 수 있습니다. -xtype 리터 | WC -l
우리는 우리가 아무것도를 가리키는 24 깨진 심볼릭 링크가 있음을 통보하고 있습니다.
, 검토를 찾은 다음 제거
당신은에 돌진하고, 결과를 보면, 모든 깨진 심볼릭 링크를 삭제하기 전에
찾기
명령. 깨진 심볼릭 링크의에 대한 유효한 이유가있는 경우를 참조하십시오.
때때로, 심볼릭 링크가 문제가 아니라 대상 파일 일 수 있습니다. 심볼릭 링크가 생성 된 경우 잘못은 아무것도를 가리킬 수 있지만, 실제 목표는 존재한다. 재 만드는 심볼릭 링크하는 경우에 수정 될 것입니다.
그것은 분명히 깨진 심볼릭 링크는 파일 잠금 또는 다른 이동 / 아니오 이동 표시기의 지표로, 다른 무언가로 사용하는 것도 가능하다. 파이어 폭스는이 않습니다; 그것은 우리의 목록에있는 첫 번째 심볼릭 링크가 무엇인지입니다. 파이어 폭스는 우리가 그것을 삭제하는 것이 안전 그래서하지만, 우리의 테스트 시스템에서 사용되지 않습니다.
그것은 대상이 주기적에만 존재 수도 있습니다, 이것은 특정 소프트웨어의 예상 (원하는) 동작입니다. 어쩌면 대상 파일을 다른 시스템이나 클라우드에서 복사, 그것의 기능을 수행하고, 만 다음 사이클에서 다른 프로그램으로 대체 할, 다시 삭제됩니다.
깨진 심볼릭 링크는 실패 소프트웨어 설치의 증상 일 수 있습니다. 이 경우, 심볼릭 링크를 삭제하는 대신, 당신은 수동으로 수정하거나 설치를 반복해야합니다.
당신은 당신이 계속해야 깨진 링크를 수정 한 경우, 검색을 수행하는 명령을 반복합니다. 고정 심볼릭 링크는 검색 결과에 결석해야한다.
안전을 위해, 그것은 자신의 디렉토리에 심볼릭 링크 제거를 제한하는 것이 가장 좋습니다. 루트로, 또는 시스템 디렉토리에이 명령을 실행 매우 조심해야합니다.
브로큰 심볼릭 링크를 제거
NS
간부
옵션에서 명령을 실행 (실행)
찾기
검색 결과. 우리는 사용에가는거야
NS
각 부서 심볼릭 링크를 삭제합니다. NS
{}
하나 하나가 발견 될 때 문자열은 각 깨진 심볼릭 링크의 이름으로 대체됩니다
찾기
...에
우리는 (세미콜론을 사용해야합니다
...에
) 우리가 원하는 명령 목록을 종료합니다
간부
실행합니다. 우리는 (백 슬래시를 사용합니다
\
그것이의 일부로 취급 그래서), 세미콜론을 '탈출'하는
찾기
명령, 오히려 뭔가 이상
세게 때리다
에 행동해야한다.
우리는 다음을 입력합니다.
에서 찾을 수 있습니다. -xtype 간부 RM L {} \
우리는 아무것도 일어난 아무 표시와 함께 명령 프롬프트로 돌아갑니다. 다음과 같이 깨진 링크가 제거되었는지 확인하기 위해, 우리는 그들을 찾기 위해 명령을 반복 :
에서 찾을 수 있습니다. -xtype L
깨진 심볼릭 링크가 제거 된 수단 일치하는 결과가 없습니다 있습니다.
검토 첫째로 기억
다시, 항상 당신이 삭제 명령을 실행하기 전에 심볼릭 링크의 목록을 검토 할 시간이 걸릴. 당신은 적절한 디렉토리에 삭제 명령을 실행하여에 대한 당신에게있는 거 확실 삭제 방지 할 수 있습니다.
예를 들어, 위의, 우리는 ".snap"디렉토리에서 명령을 실행 한 수 있으며, 수동으로 독방 "안녕하세요"심볼릭 링크를 제거했습니다. 이것은 파이어 폭스 잠금이 그대로 심볼릭 링크 남아있는 것입니다.