
다음과 같이 심볼릭 링크의 연결을 해제하고 싶습니다.
unlink *
그러나 그것은 말한다unlink: extra operand
링크 파일만 삭제하고 원본 파일은 유지하고 싶습니다.
답변1
"*"를 사용하면 현재 위치에 있는 모든 파일과 디렉터리의 연결을 해제하려고 합니다.
unlink는 파일이나 디렉터리를 처리할 수 없으며 링크만 처리할 수 있습니다. 다음과 같이 find 명령을 사용하여 모든 링크를 찾아 링크를 해제합니다.
find . -type l -exec unlink {} \;
답변2
. find … -exec …
필요 unlink
하거나 rm
의 결과가 필요한 경우 find
해당 항목을 사용하세요.-delete
대신 옵션.
find . -maxdepth 1 -type l -delete
-type l
이 명령은 현재 디렉터리(하위 디렉터리가 아님; *
하위 디렉터리로 내려가지 않으므로 이것이 원하는 것이라고 가정함) 에서 모든 심볼릭 링크( )를 찾아서 삭제합니다. 기본 동작은 심볼릭 링크를 따르지 않는 것이므로 원본 파일은 영향을 받지 않습니다.
답변3
이 명령은 현재 폴더의 모든 심볼릭 링크를 찾아서 제거하며 하위 폴더로 재귀하지 않으며 도트 파일을 무시합니다.
find . -maxdepth 1 -type l ! -name '.*' -delete