특정 폴더의 파일을 가리키는 심볼릭 링크를 제거하는 방법은 무엇입니까?

특정 폴더의 파일을 가리키는 심볼릭 링크를 제거하는 방법은 무엇입니까?

다음 예를 들어 설명하는 것이 가장 좋다고 생각합니다.

lrwxrwxrwx 1 root   root      21 Mar 31 08:44 awk -> /etc/alternatives/awk*
-rwxr-xr-x 1 root   root     45K Apr  8  2015 b43-fwcutter*
lrwxrwxrwx 1 root   root      35 Apr  1 21:42 backup-config -> /home/myuser/scripts/backup-config.sh
lrwxrwxrwx 1 root   root      37 Apr  1 21:42 backup-to-server -> /home/myuser/scripts/backup-to-server.sh

/home/myuser/scripts 내의 파일을 가리키는 모든 심볼릭 링크를 제거하고 싶습니다.

이 예에서는. 백업 구성을 삭제하고 서버에 백업하고 싶습니다.

감사해요!

PS 삭제하고 싶은 폴더에 다른 심볼릭 링크가 있는데 백업에 있는 것이 아니어서 패턴을 실제로 사용할 수는 없습니다.

답변1

파일을 반복하고 기호 링크를 패턴과 일치시킵니다. 이는 절대 경로가 있는 직접 링크에 대해 작동합니다( ../../something여러 심볼릭 링크를 건너뛰거나 건너뛰는 등의 작업은 아님).

for f in * ; do
    [ -L "$f" ] || continue;                      # skip anything but symlinks
    l=$(readlink "$f")                            # read the link contents
    case "$l" in 
        /home/myuser/scripts/*) echo rm "$f" ;;   # match against a pattern
    esac
done

관련 정보