이름으로 파일을 재귀적으로 찾아 삭제하고 심볼릭 링크를 만듭니다.

이름으로 파일을 재귀적으로 찾아 삭제하고 심볼릭 링크를 만듭니다.

반면:

폴더 구조는 다음과 같습니다( file.txt심볼릭 링크가 아닌 각 디렉터리의 일반 텍스트 파일).

/basedir/A/file.txt
/basedir/B/file.txt
/basedir/C/file.txt

위치 :file.txt/mydir

/mydir/file.txt

다음에서 실행할 수 있는 명령이 필요합니다 /basedir.

  • 재귀적으로 모두 찾기 /file.txt( .A/, ./B./C)
  • file.txt찾은 파일 삭제
  • 심볼릭 링크 생성/mydir/file.txt

단일 bash 명령으로 수행할 수 있습니까?

감사합니다!

답변1

이렇게 하면 됩니다:

find /basedir -type f -name file.txt -exec ln -sf /mydir/file.txt '{}' \;

file.txt이 명령은 아래 이름의 모든 파일을 찾아 /basedir각 파일에서 실행되며 ()를 에 대한 심볼릭 링크( ) 로 ln바꿉니다 .-f-s/mydir/file.txt

관련 정보