Rsync에는 폴더 내용이 포함되지만 상위 폴더는 제외됩니다.

Rsync에는 폴더 내용이 포함되지만 상위 폴더는 제외됩니다.

온라인으로 검색했지만 답변을 찾지 못했습니다...목적지에서 이 결과를 얻으려고 노력했습니다.

Media_Files
    Web
        Print

내 소스 파일은

Media_Files
    Assets
        Web
            Print

폴더를 제외, 삭제, 삭제 또는 필터링 하면서 폴더 사용량을 Assets유지하는 방법은 무엇입니까 ? 감사해요Web/Printrsync

답변1

이 작업은 두 단계로 수행해야 합니다.

  1. 제외한 모든 것을 복사합니다 Media_Files/Assets(다른 것이 있다고 가정 Media_Files).
  2. 복사 Media_Files/Assets/Web.

첫 번째 단계는 다음과 같이 수행할 수 있습니다.

rsync -av --exclude=/Assets/ Media_Files/ destination

Madia_Files그러면 디렉터리(권한 및 기타 메타데이터 포함)가 destination생성된 복사본에 (자세히) 반복적으로 복사됩니다 ( 생성할 destination소스 경로의 후행 항목 제거 ).Media_Files/destination/Media_Files

제외 패턴으로 인해 Assets바로 아래 디렉터리는 무시됩니다.Media_Files/Assets/

두 번째 단계는 다음과 같이 수행할 수 있습니다.

rysync -av Media_Files/Assets/Web destination

/소스 경로 끝에 누락된 수단은 Web해당 경로에 삽입됩니다 destination.

Media_Files/Assets이 외에 다른 파일이나 디렉터리를 복사해야 하는 경우 Web대신 사용하세요.

rsync -av Media_Files/Assets/ destination

이렇게 하면 디렉토리와 그 내용을 Media_Files/Assets포함한 모든 것이 .Webdestination


다음 두 단계를 수행할 수 있습니다.

  1. destination어떤 것을 만들어정밀한Media_Files를 포함한 의 사본 Media_Files/Assets.
  2. destination/Assets원하는 콘텐츠를 수동으로 이동 destination하고 삭제하세요 destination/Assets.

간단히 말해서:

rsync -av Media_Files/ destination
mv -i destination/Assets/* destination
rmdir destination/Assets

destination/Assets마지막 두 명령은 유지하려는 항목(예: ) 만 이동하고 나머지는 삭제하도록 수정됩니다. destination/Assets/Web여기서는 표시되는 모든 파일과 디렉터리를 이동하려고 한다고 가정하고 이로 인해 Assets하위 디렉터리가 완전히 비어 있게 됩니다.

답변2

다음 명령을 사용하여 결과를 얻을 수 있습니다

rsync -azvP Media_Files/assets/웹 Media_Files/

관련 정보