문제

중요한 디렉토리에 대한 Symlink가 있습니다. 디렉토리를 뒤에 유지하면서 그 상징 링크를 제거하고 싶습니다.

나는 시도했다 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/

기본적으로 디렉토리를 삭제하지 않고 파일을 삭제하도록 지시해야합니다. 나는 그 사이의 차이를 믿는다 rm 그리고 rmdir C 라이브러리가 각각 처리하는 방식의 차이로 인해 존재합니다.

어쨌든 첫 번째는 작동해야하며 두 번째는 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/). 그런 다음 Symlink를 제거 할 것인지 묻습니다. y 그렇습니다.

실제로 Symlink라고 가정하면

$ rm -d symlink

그것을 알아 내야하지만, 우리는 더 이상 존재하지 않지만 여기서 올바른 일을하는 다른 경우에 대한 잠재 코드를 활성화 할 수는 없습니다.

RM이 Symlink를 제거 할 수없는 경우 Symlink가 포함 된 디렉토리의 권한을 살펴 봐야 할 것입니다. 디렉토리 항목을 제거하려면 포함 된 디렉토리에 쓰기 권한이 필요합니다.

설정이 다음과 같습니다. ln -s /mnt/bar ~/foo, 당신은 할 수 있어야합니다 rm foo 문제없이. 당신이 할 수 없다면, 당신이 foo 파일 작성/실행 허가가 있습니다. 풀이 foo 만지지 않을 것입니다 bar, 당신이 그것을 재귀 적으로하지 않는 한.

Centos에서 그냥 달리십시오 rm linkname 그리고 "상징적 링크 제거?"를 요구할 것입니다. 유형 와이 그리고 입력하다, 링크가 사라지고 디렉토리는 안전합니다.

Windows 서버에서 Mingw (실제로 Git Bash)가 실행하는 데이 문제가있었습니다. 위의 제안 중 어느 것도 효과가없는 것 같습니다. 결국 A는 Directory의 사본을 만들어 Windows 탐색기에서 소프트 링크를 삭제 한 다음 재활용 빈에서 항목을 삭제했습니다. 파일을 삭제하는 것처럼 소음을 만들었지 만 그렇지 않았습니다. 그래도 백업을하십시오!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top