디렉토리에 대한 심볼릭 링크 제거


1085

중요한 디렉토리에 대한 심볼릭 링크가 있습니다. 디렉토리를 유지하면서 해당 심볼릭 링크를 제거하고 싶습니다.

나는 rm다시 시도했다 rm: cannot remove 'foo'.
나는 시도 rmdir하고 돌아왔다 rmdir: failed to remove 'foo': Directory not empty
나는 다음을 통해 진행 rm -f, rm -rf그리고sudo rm -rf

그런 다음 백업을 찾기 위해 갔다.

목욕물로 아기를 버리지 않고 symlink를 제거하는 방법이 있습니까?


74
리눅스 관련 질문을하는 것은 무엇이 문제입니까? 지난번에 내가는 스택 오버플로 OS 별이 아니었다
제레미 캔 트렐

6
이 질문이 수퍼 유저 또는 Linux 관련 스택 교환에 더 적합하지 않습니까?
mwfearnley

45
@mwfearnley 그렇 겠지만 날짜를 확인하십시오. 슈퍼 유저는 당시의 일이 아니 었습니다. 포팅되었으므로 거기에도 있습니다. 왜 아직도 여기 있는지 모르겠지만, 가장 높은 점수를받는 질문이며 입에 선물 카르마를 보지 않을 것입니다.
Matthew Scouten

16
팁 : rm -r link/ 대상의 컨텐츠를 삭제합니다 .
Gayan Weerakutti

31
Then I went to find my back-ups-그게 나를 괴롭혔다.
frakman1

답변:


1308
# this works:
rm foo
# versus this, which doesn't:
rm foo/

기본적으로 디렉토리를 삭제하지 말고 파일 을 삭제하도록 지시해야합니다 . 나는 차이점 생각 과는 방식 때문에 C 라이브러리 취급 각각의 차이 존재한다.rmrmdir

어쨌든 첫 번째는 작동하지만 두 번째는 foo가 디렉토리라는 불평을해야합니다.

위와 같이 작동하지 않으면 권한을 확인하십시오. 파일을 제거하려면 포함 디렉토리에 대한 쓰기 권한이 필요합니다.


121
어 그래. 말이 되네요 나는 foo를 입력하지 않았고 f <tab>을 입력했으며 bash는 /를 채웠다.
Matthew Scouten

6
항상 작동하지는 않습니다. 때로는 rm -rf folderName심볼릭 링크를 제거하기 위해 (후행 /없이) 실행해야합니다 . 예를 들어 Amazon Linux는 특정 상황에서 이러한 방식으로 작동합니다.
brandonscript

18
@ r3mus : -r당신이 그 안에있는 모든 것을 잃고 싶지 않으면 symlink와 함께 사용하지 마십시오 . -f파일 권한을 재정의하는 것 외에는 필요하지 않습니다.
Matthew Scharley

27
특히 AKA '링크'작업 unlink과 관련이 없습니다 ln. 이름 unlink은 파일 시스템의 파일 테이블에서 파일의 링크를 해제 / 제거하는 과정을 나타내며, 그 내용은 어떤 참조와도 분리되어 링크가 해제됩니다. 특히 링크 및 심볼릭 링크에 적용될 때 혼란스러운 이름입니다. 유형에 관계없이 모든 파일에서unlink 작동하기 때문에 심볼릭 링크와 함께 작동 합니다.
Matthew Scharley

4
당신이 실제로 어리석은 일을 걱정한다면, alias rm="rm -i"내가 생각하는 것보다 더 많은 가죽을 구했습니다.
Matthew Scharley

832

확인 "연결 해제"명령을 사용하게 하지 끝에 /를 가지고

$ unlink mySymLink

unlink ()는 파일 시스템에서 이름을 삭제합니다. 해당 이름이 파일에 대한 마지막 링크이고 파일을 연 프로세스가없는 경우 파일이 삭제되고 사용중인 공간을 재사용 할 수있게됩니다. 이름이 파일에 대한 마지막 링크이지만 프로세스가 여전히 파일을 연 경우 파일을 참조하는 마지막 파일 디스크립터가 닫힐 때까지 파일은 계속 존재합니다.

올바르게 읽으면 문제가 될 수 있습니다.

이름이 심볼릭 링크를 참조하면 링크가 제거됩니다.

이름이 소켓, fifo 또는 장치를 참조하는 경우 해당 이름은 제거되지만 오브젝트가 열린 프로세스는 계속 사용할 수 있습니다.

https://linux.die.net/man/2/unlink


33
@OmarAbid "rm foo /"버전이 무섭습니다. 이것은 훨씬 안전 해 보인다 :)
Joe Phillips

9
우분투, 나는 테스트 ~/c/a/file, /c/b/ln -s ~/c/a ~/c/b/. 에서 ~/c/b/, rm a/이 작동하지 않음, rm -rf a/단지 원본을 비 웁니다 a. unlink a완벽하게 작동하고 unlink a/아무것도하지 않습니다.
브래디 트레이너

3
OS X 10.10에서는 unlink단순히에 대한 별칭입니다 rm. rm디렉토리 구조의 어떤 부분을 다룰 때 적절한 규율이 활용되어야 함 을 보여줍니다 .
Doug Powers

1
스크립팅에서는 rm -f링크가 존재하는지 여부에 관계없이 링크를 자동으로 삭제하지만 unlink링크가 없으면 불평합니다. 링크 해제에 해당하는`-f '옵션이 없으므로 스크립트가 더 복잡해집니다.
shonky Linux 사용자 1

22
unlink일반 파일을 삭제할 수 있습니다. rm심볼릭 링크 보다 기능이 적고 특정하지 않습니다. 플래그 rm가없는 디렉토리도 삭제하지 않습니다 -r. 따라서 rm을 선호합니다. 자세한 대화 형 대화 형 플래그가 있습니다. 의미있는 경고 및 오류 메시지
ThorSummoner

18

rm은 심볼릭 링크를 제거해야합니다.

skrall@skrall-desktop:~$ mkdir bar
skrall@skrall-desktop:~$ ln -s bar foo
skrall@skrall-desktop:~$ ls -l foo
lrwxrwxrwx 1 skrall skrall 3 2008-10-16 16:22 foo -> bar
skrall@skrall-desktop:~$ rm foo
skrall@skrall-desktop:~$ ls -l foo
ls: cannot access foo: No such file or directory
skrall@skrall-desktop:~$ ls -l bar
total 0
skrall@skrall-desktop:~$ 

17

사용 rm symlinkname하지만 끝에 슬래시를 포함하지 마십시오 ( 사용 하지 마십시오 :) rm symlinkname/. 그런 다음 심볼릭 링크를 제거 할 것인지 묻는 메시지가 표시됩니다 y.


63
당신은 틀리지 않았지만 정답은 이미 여기 있으며 받아 들여졌습니다 (4 년 전). 왜 귀찮게?
Matthew Scouten 1

1
Google은 "심볼 링크 제거"를 검색 할 때이 기능을 스 니펫으로 사용했습니다. 아마도 휴리스틱이 어떻게 작동하는지 확실하지 않은 간결성을 좋아했을 것입니다. 어쨌든, 나는 즉시 명령 줄을 다시 보면서 facepalm을했다 :-)
Randall

12

실제로 심볼릭 링크라고 가정하면,

$ rm -d symlink

그것을 알아 내야하지만 더 이상 존재하지 않지만 여기서 올바른 일을하는 다른 경우를위한 잠재 코드를 사용할 수 없기 때문에 가능합니다.


7

rm이 심볼릭 링크를 제거 할 수없는 경우 심볼릭 링크가 포함 된 디렉토리의 권한을 확인해야합니다. 디렉토리 항목을 제거하려면 포함 디렉토리에 대한 쓰기 권한이 필요합니다.


4

설정이 다음과 같다고 가정하면 아무런 문제없이 ln -s /mnt/bar ~/foo할 수 있어야합니다 rm foo. 당신이 할 수없는 경우, 당신은의 소유자이고 foo파일을 작성 / 실행 권한 이 있는지 확인하십시오 . 재귀 적으로 수행하지 않는 한 제거 foo는 터치 bar하지 않습니다 .


2

CentOS에서는 그냥 실행 rm linkname하면 "기호 링크를 제거 하시겠습니까?"라는 메시지가 표시됩니다. 입력 Y하고 Enter, 링크가 사라되며 디렉토리 안전합니다.


2

Windows 서버에서 MinGW (실제로 Git Bash)를 실행 하면서이 문제가 발생했습니다. 위의 제안 중 어느 것도 효과가없는 것 같습니다. 결국 a는 디렉토리의 복사본을 만든 다음 Windows 탐색기에서 소프트 링크를 삭제 한 다음 휴지통에서 항목을 삭제했습니다. 파일을 삭제하는 것처럼 들리지만 들리지 않았습니다. 그래도 백업을 만드십시오!


3
"파일을 삭제하는 것처럼 소리가났다 ..."-와우!
Sterex

LMFAO. "파일을 삭제하는 것처럼 소리가
났다

플로피 디스크를 기억합니다!
Keith Whittingham

~ 문서 w $ 1! 바탕 화면 다운로드 드롭 박스 - 윈도우 음악 공공 비디오 보관 examples.desktop 사진 템플릿 'VM웨어 VMX 파일'eddyq @ eddyq 찾기 - E6440 다음 나를 위해 일한 해당 사항 없음
eddyq
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.