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만듭니다 ( 대신 create 로 소스 경로의 후행을 제거 ).destinationMedia_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이렇게 하면 ( Web디렉토리와 그 내용을 포함하여) 모든 내용이 destination.


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

  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/자산/웹 Media_Files/

관련 정보