예를 들어:
find /usr -type f -name "*.txt" -exec cp -r {} ~/txts/ \;
기존 디렉터리 txt가 있는 경우에는 잘 작동합니다.
내가 이해할 수 있는 한-cp에는 플래그가 없습니다이 사건을 해결하기 위해. rsync나 다른 것을 사용해야 할까요?
답변1
좋은 질문입니다. 다음을 시도해 볼 수 있습니다.
먼저 cd
에서 절대 경로(예 : ) /usr
를 사용하면 전체 경로가 포함될 것으로 예상되기 때문입니다./usr
find
{}
find . -type f -a -name "*.txt" -a -exec install -D {} ~/texts/{} \;
이 명령을 실행하면 다음과 같은 오류 메시지가 나타납니다.
찾기: './share/doc/google-chrome-stable': 권한이 거부되었습니다.
오류 메시지는 작업이 전체적으로 실패했음을 의미하는 것이 아니라 find
디렉터리에서 명령을 실행할 수 없다는 의미일 뿐입니다 ./share/doc/google-chrome-stable
.
그러나 나에게는 다른 모든 파일과 해당 경로가 복사되었고 필요에 따라 디렉토리 경로가 생성되었습니다.
추가 조사 결과 오류의 원인은 다음과 같습니다.
% ls -al --directory ./share/doc/google-chrome-stable
drwx------ 2 root root 4096 Aug 21 12:45 ./share/doc/google-chrome-stable