나는 사용할 수 있다
find /search/location -type l
내부의 모든 심볼릭 링크 나열/검색/위치.
유효한 디렉터리를 참조하는 심볼릭 링크 로 출력을 제한 find
하고 깨진 심볼릭 링크와 파일 링크를 제외하려면 어떻게 해야 합니까?
답변1
GNU find 사용(비임베디드 Linux 및 Cygwin에서 구현):
find /search/location -type l -xtype d
기본 기능이 없는 찾기 구현의 경우 -xtype
두 개의 호출을 사용할 수 있습니다 find
. 하나는 기호 링크를 필터링하고 다른 하나는 디렉토리에 대한 링크를 필터링합니다.
find /search/location -type l -exec sh -c 'find -L "$@" -type d -print' _ {} +
또는 다음과 같이 프로그램을 호출할 수 있습니다 test
.
find /search/location -type l -exec test {} \; -print
또는 zsh가 있다면 두 개만 있으면 됩니다.글로벌 예선( @
=는 심볼릭 링크이고 -
= 다음 한정자는 링크 대상에 적용되며 /
=는 디렉토리입니다):
print -lr /search/location/**/*(@-/)
답변2
노력하다:
find /search/location -type l -exec test -e {} \; -print
에서 man test
:
-e FILE FILE exists
당신은 또한 혜택을 누릴 수 있습니다깨진 심볼릭 링크를 찾는 방법에 대한 U&L의 답변;댓글도 꼭 읽어보세요.
편집하다: test -d
"FILE이 존재하는지, 디렉터리인지"를 확인하세요.
find /search/location -type l -exec test -d {} \; -print
답변3
여기 있어요:
for i in $(find /search/location -type l); do
test -d $(readlink $i) && echo $i
done