Linux 파일에서 Code dx를 실행하려면 모든 링크를 실제 파일로 바꿔야 합니다. Linux에서 일한 지 수년이 지났고 용어가 혼란스럽습니다. 지난 이틀 동안 답을 찾고 있었습니다. 간단한 스크립트가 있나요? 2,500만 줄의 코드가 있습니다.
원래 디렉터리: afile bfile clink_to_cfile_in_another_dir (여러 링크를 통과할 수도 있음)
원하는 최종 결과: afile bfile cfile
이 작업을 수행했지만 아직 제대로 작동하지 않습니다.
find . -type l -exec "echo 'replacing {}'; cp -LR '{}' '{}'.deref rm '{}' \;"
답변1
몇 가지 질문이 있습니다
- 따옴표 외부에는 필수
\;
이며, exec에 대한 별도의 매개변수입니다. ;
마지막 rm 명령 앞에 a가 누락되었습니다.- exec는 전체 명령을 하나의 명령으로 실행하려고 시도합니다.
이와 같은 여러 명령을 실행하려면 셸을 실행하고 스크립트에 전달할 수 있습니다.
find . -type l -exec /bin/bash -c "echo 'replacing {}'; cp -LR '{}' '{}.deref' ; rm '{}'" \;
작동하는 것 같습니다.