SW/리눅스

Linux : Symbolic Links 제거, 삭제 방법, 예제, 명령어

얇은생각 2021. 12. 20. 07:30
반응형

심볼 링크라고도 하는 심볼 링크는 다른 파일 또는 디렉터리를 가리키는 특수한 파일 유형입니다. 이것은 윈도우의 바로 가기 같은 것입니다. 심볼 링크는 동일한 파일 시스템 또는 파티션에 있는 파일 또는 디렉터리를 가리킬 수 있습니다.

이 가이드에서는 rm, unlink, find 명령을 사용하여 Linux/UNIX 시스템에서 심볼 링크를 제거(삭제)하는 방법에 대해 설명합니다.

 

 

Linux : Symbolic Links 제거, 삭제 방법, 예제, 명령어

 

 

시작하기 전

심볼 링크를 제거하려면 심볼 링크가 포함된 디렉터리에 대한 쓰기 권한이 있어야 합니다. 그렇지 않으면 "작업이 허용되지 않음" 오류가 발생합니다.

심볼 링크를 제거해도 심볼 링크가 가리키는 파일은 영향을 받지 않습니다.

ls -l 명령을 사용하여 지정된 파일이 심볼 링크인지 확인하고 심볼 링크가 가리키는 파일 또는 디렉토리를 찾습니다.

ls -l /usr/bin/python

# lrwxrwxrwx 1 root root 9 Apr 16  2018 /usr/bin/python -> python2.7

 

 

첫 번째 문자 "l"은 파일이 심볼 링크임을 나타냅니다. "->" 기호는 심볼 링크가 가리키는 파일을 표시합니다.

 

 

 

rm을 사용하여 심볼 링크를 제거

rm 명령은 지정된 파일 및 디렉토리를 제거합니다.

심볼 링크를 삭제하려면 rm 명령 뒤에 심볼 링크 이름을 인수로 호출하십시오.

rm symlink_name

 

 

성공하면 명령이 0으로 종료되고 출력이 표시되지 않습니다.

rm을 사용하면 한 번에 여러 심볼 링크를 삭제할 수 있습니다. 이렇게 하려면 심볼 링크의 이름을 공백으로 구분하여 인수로 전달합니다.

rm symlink1 symlink2

 

 

심볼 링크를 제거하기 전에 메시지를 표시하려면 -i 옵션을 사용하십시오.

y를 확인하고 Enter 키를 누릅니다.

rm -i symlink_name

# rm: remove symbolic link 'symlink_name'?

 

 

심볼 링크가 디렉터리를 가리키는 경우 / 후행 슬래시를 끝에 추가하지 마십시오. 그렇지 않으면 다음 오류가 발생합니다.

rm symlink_to_dir/

# rm: cannot remove 'symlink_to_dir/': Is a directory

 

 

인수 이름이 /로 끝나는 경우 rm 명령은 파일이 디렉토리라고 가정합니다. -d 또는 -r 옵션 없이 사용할 경우 rm이 디렉토리를 삭제할 수 없기 때문에 오류가 발생합니다.

rm으로 심볼 링크를 제거할 때 안전한 편에 있으려면 -r 옵션을 사용하지 마십시오. 예를 들어 다음과 같이 입력합니다.

rm -f symlink_to_dir/

 

 

대상 디렉토리의 내용이 삭제됩니다.

연결 해제를 사용하여 심볼 링크를 제거합니다.

연결 해제 명령은 지정된 파일을 삭제합니다. rm과 달리 unlink는 단일 인수만 허용합니다.

심볼 링크를 삭제하려면 unlink 명령과 symlink 이름을 인수로 실행합니다.

unlink symlink_name

 

 

명령이 성공적으로 실행되면 출력이 표시되지 않습니다.

symlink 이름 끝에 /trailing 슬래시를 추가하지 마십시오. unlink는 디렉토리를 제거할 수 없습니다.

 

 

 

끊어진 심볼 링크를 찾아 삭제

원본 파일을 삭제하거나 다른 위치로 이동하면 심볼 파일이 매달려 있습니다(중단).

지정된 디렉토리에서 끊어진 모든 심볼 링크를 찾으려면 다음 명령을 실행합니다.

find /path/to/directory -xtype l

# /path/to/directory/symlink1
# /path/to/directory/subdir/symlink2

 

 

이 명령은 디렉토리와 하위 디렉토리 아래에 끊어진 모든 링크를 나열합니다.

하위 디렉터리에 포함된 심볼 링크를 제외하려면 -max depth 1 옵션을 전달하여 다음을 찾습니다.

find /path/to/directory -maxdepth 1 -xtype l

# /path/to/directory/symlink1

 

 

끊어진 심볼 링크를 찾으면 rm 또는 unlink를 사용하여 수동으로 제거하거나 find 명령의 -delete 옵션을 사용할 수 있습니다.

find /path/to/directory -xtype l -delete

 

 

심볼 링크를 제거하려면 rm 또는 unlink 명령 뒤에 symlink 이름을 인수로 사용합니다. 디렉터리를 가리키는 심볼 링크를 제거할 때 심볼 링크 이름에 후행 슬래시를 추가하지 마십시오.

반응형