소스 디렉터리에서 대상 기본 디렉터리로 파일을 복사하고 소스 경로를 유지합니다.

소스 디렉터리에서 대상 기본 디렉터리로 파일을 복사하고 소스 경로를 유지합니다.

죄송합니다. 문제를 설명하는 데 올바른 용어를 사용하지 않고 몇 가지 일반적인 명령에 대한 가장 기본적인 사용법을 오해하고 있는 것 같습니다.

복사하려는 파일을 찾는 간단한 find 문이 있습니다. -exec cp {}를 추가하고 cp가 소스 디렉터리에서 새 기본 디렉터리로 파일을 복사하되 전체 경로를 포함하도록 하고 싶습니다. 예를 들어:

  • find . -name *.txt위치를 찾는다/user/username/projects/source.txt
  • cp {} [now what?]파일을 다음 위치에 복사합니다./user/newuser/projects/source.txt

답변1

rsync -rlpv --files-from=<(find ...) /user/username/projects /user/newuser

답변2

모든 하위 디렉터리가 존재한다고 확신할 수 있다면 다음은 재미있는 옵션입니다.

cd /user/username/
find . -name \*.gz | sed 's/\.\(.*\)/.\1 ..\/newuser\1/' | xargs -n2 cp

관련 정보