디렉토리에 대한 심볼릭 링크 제거
중요한 디렉토리에 대한 심볼릭 링크가 있습니다. 나는 그 심볼릭 링크를 제거하고 그 뒤에 디렉토리를 유지하고 싶습니다.
나는 시도 rm
하고 돌아왔다 rm: cannot remove 'foo'
.
나는 시도 rmdir
하고 돌아왔다 rmdir: failed to remove 'foo': Directory not empty
나는 다음을 통해 진행 rm -f
, rm -rf
그리고sudo rm -rf
그런 다음 백업을 찾으러 갔다.
목욕물로 아기를 버리지 않고 심볼릭 링크를 제거하는 방법이 있습니까?
# this works
rm foo
# versus
rm foo/
기본적으로 디렉토리를 삭제하는 것이 아니라 파일을 삭제하도록 지시해야합니다. 나는 C 라이브러리가 각각을 처리하는 방식의 차이 때문에 rm
와 사이의 차이가 있다고 생각합니다 rmdir
.
어쨌든 첫 번째는 작동해야하고 두 번째는 foo가 디렉토리라는 것에 대해 불평해야합니다.
위와 같이 작동하지 않으면 권한을 확인하십시오. 파일을 제거하려면 포함하는 디렉토리에 대한 쓰기 권한이 필요합니다.
확인 "연결 해제"명령을 사용하게 하지 끝에 /를 가지고
$ unlink mySymLink
unlink ()는 파일 시스템에서 이름을 삭제합니다. 해당 이름이 파일에 대한 마지막 링크이고 파일이 열려있는 프로세스가없는 경우 파일이 삭제되고 사용하던 공간을 재사용 할 수 있습니다. 이름이 파일에 대한 마지막 링크 였지만 모든 프로세스에 파일이 열려 있으면 파일을 참조하는 마지막 파일 설명자가 닫힐 때까지 파일이 존재합니다.
올바르게 읽는다면 이것이 문제가 될 수 있다고 생각합니다.
이름이 심볼릭 링크를 참조하면 링크가 제거됩니다.
이름이 소켓, fifo 또는 장치를 참조하는 경우 해당 이름은 제거되지만 개체가 열려있는 프로세스는 계속 사용할 수 있습니다.
https://linux.die.net/man/2/unlink
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:~$
사용 rm symlinkname
하되 끝에 슬래시를 포함하지 마십시오 ( 사용 하지 마십시오 :) rm symlinkname/
. 그런 다음 y
예라고 대답 하기 위해 심볼릭 링크를 제거할지 묻는 메시지가 표시됩니다 .
실제로 심볼릭 링크라고 가정하면
$ rm -d symlink
그것을 알아 내야하지만 더 이상 존재하지 않지만 여기서 옳은 일을하는 또 다른 케이스를 위해 의도 된 잠재 코드를 활성화 할 수 없기 때문입니다.
rm이 심볼릭 링크를 제거 할 수없는 경우 심볼릭 링크를 포함하는 디렉토리에 대한 권한을 확인해야합니다. 디렉토리 항목을 제거하려면 포함하는 디렉토리에 대한 쓰기 권한이 필요합니다.
설정이 다음과 같다고 가정하면 문제없이 ln -s /mnt/bar ~/foo
를 수행 할 수 rm foo
있습니다. 할 수없는 경우 foo
해당 파일 의 소유자이고 파일 쓰기 / 실행 권한 이 있는지 확인하십시오 . 재귀 적으로 수행하지 않는 한 제거 foo
는을 터치 bar
하지 않습니다 .
CentOS에서 실행 rm linkname
하면 "기호 링크를 제거 하시겠습니까?"라는 메시지가 표시됩니다. Y및을 입력 Enter하면 링크가 사라지고 디렉토리가 안전합니다.
Windows Server에서 실행되는 MinGW (실제로 Git Bash)에이 문제가 발생했습니다. 위의 제안 중 어느 것도 작동하지 않는 것 같습니다. 결국 Windows 탐색기에서 소프트 링크를 삭제 한 다음 휴지통의 항목을 삭제 한 경우를 대비하여 디렉터리의 복사본을 만들었습니다. 파일을 삭제하는 것처럼 소음이 들었지만 그렇지 않았습니다. 그래도 백업하십시오!
참고 URL : https://stackoverflow.com/questions/210120/remove-a-symlink-to-a-directory
'your programing' 카테고리의 다른 글
레이크 태스크에 명령 줄 인수를 전달하는 방법 (0) | 2020.09.27 |
---|---|
git reset --hard HEAD ~ 1을 실행 취소하려면 어떻게해야합니까? (0) | 2020.09.27 |
지정된 이름의 열을 포함하는 모든 테이블 찾기-MS SQL Server (0) | 2020.09.27 |
Vim에서 줄에 주석을 달거나 주석을 제거하는 빠른 방법은 무엇입니까? (0) | 2020.09.27 |
평범한 영어로 된 Ukkonen의 접미사 트리 알고리즘 (0) | 2020.09.27 |