find 검색 후, 결과 파일 복사할 때 경로 유지..

kimorak의 이미지

안녕하세요. 방대한 소스 파일에서 특정 파일을 찾아서 다른 폴더로 복사를 하려고 하는데요.
복사를 할 때, 기존 경로를 유지하는 방법에 대해서 질문 드려요.

현재는 다음과 같이 하고 있는데, 이렇게 하면 통째로 한 폴더에만 copy 되서, 경로를 유지해서 복사하려면 어떻게 해야할까요..
$ sudo find ./ -type f -name "*.c" -exec cp {} ~/temp/ \;

Prentice의 이미지

cp가 기본적으로 그렇게 작동하기 때문에, path를 보존하는 script를 짜신다거나 하셔야 합니다.

간단하게는 tar로도 가능합니다.

sudo find ./ -type f -name "*.c" -exec tar rf ~/temp/allc.tar {} \;
cd ~/temp/
tar xf allc.tar

익명 사용자의 이미지

$ ( find . -type f -name "*.c" -print0 | xargs -0 tar cf - ) | ( cd ~/dest-dir; tar xf - )

조금 전에 질문하신 상황이 발생해서 좀 살펴보니, 거의 비슷하긴 한데, 위와 같은 방법으로 해결했습니다.