lndir 결과를 취소하는 unlndir 스크립트

lndir 결과를 취소하는 unlndir 스크립트

lndir명령은 디렉토리 트리의 섀도 복사본을 수행하지만 기호 링크를 사용합니다. 파일은 복사되지 않고 심볼릭 링크로 연결되며 하위 디렉터리도 복사됩니다. 잘 작동하지만 unlndir그 반대의 스크립트도 필요합니다.

즉, unlndirwill 의 동작은 다음과 같습니다.

  • 소스 트리의 파일을 가리키는 대상 트리에 심볼릭 링크가 있는 경우 심볼릭 링크를 삭제합니다.
  • 소스 및 대상 트리에 있는 모든 하위 디렉터리에서 이전 작업을 반복적으로 실행합니다.
  • 대상 트리의 일부 하위 디렉터리가 비어 있으면 삭제합니다.

나는 이것이 다음과 비슷하다는 것을 깨닫습니다.GNU 스토우사실이지만 저는 더 간단한 쉘 스크립트 기반 접근 방식을 찾고 있습니다.

이 작업을 수행할 수 있는 쉘 스크립트를 알고 있습니까?

답변1

GNU를 가정하면 find(1):

find -P /some/dir -type l -xtype f -delete && find -P /some/dir -type d -empty -delete

관련 정보