기계적 인조 인간

rsync를 사용하여 파일 및 디렉토리를 제외하는 방법

VINALAX 2021 - DÂN CHÂU Á ĐI VÔ BAR - HOT TREND TIKTOK 2021 BASS CĂNG ĐÉT

VINALAX 2021 - DÂN CHÂU Á ĐI VÔ BAR - HOT TREND TIKTOK 2021 BASS CĂNG ĐÉT

차례:

Anonim

Rsync는 원격 셸을 통해 두 위치간에 파일과 폴더를 동기화하는 빠르고 다양한 명령 줄 유틸리티입니다.

Rsync를 사용하면 데이터를 미러링하고 증분 백업을 생성하며 시스템간에 파일을 복사 할 수 있습니다. 데이터를 복사 할 때 이름이나 위치에 따라 하나 이상의 파일 또는 디렉토리를 제외 할 수 있습니다.

이 학습서에서는 rsync를 사용하여 파일 및 디렉토리를 제외하는 방법을 보여줍니다.

시작하기 전에

rsync 작동 방식에 대한 기본 지식이 있어야합니다.

아래 예제에서는 rsync를 -a 옵션과 함께 사용합니다. 이것은 rsync에게 디렉토리를 재귀 적으로 동기화하고, 특별한 장치와 블록 장치를 전송하며, 심볼릭 링크, 수정 시간, 그룹, 소유권 및 권한을 유지하도록 지시합니다.

파일이나 디렉토리를 제외 할 때 소스 디렉토리에 대한 상대 경로를 사용해야합니다.

제외 할 파일과 디렉토리를 지정하는 두 가지 옵션이 있습니다.

  • --exclude 사용하여 명령 줄에서, --exclude-from 옵션을 사용하여 파일 에서

특정 파일 제외

특정 파일을 제외 시키려면 파일의 상대 경로를 --exclude 옵션으로 전달하십시오.

다음 예제에서 src_directory/file.txt 파일은 전송되지 않습니다.

rsync -a --exclude 'file.txt' src_directory/ dst_directory/

특정 디렉토리 제외

특정 디렉토리를 제외하는 것은 파일을 제외하는 것과 같습니다. 아래에 표시된 것처럼 디렉토리의 상대 경로를 --exclude 옵션에 전달하십시오.

rsync -a --exclude 'dir1' src_directory/ dst_directory/

rsync -a --exclude 'dir1/*' src_directory/ dst_directory/

여러 파일 또는 디렉토리 제외

여러 파일 또는 디렉토리를 제외하려면 여러 --exclude 옵션을 지정하십시오.

rsync -a --exclude 'file1.txt' --exclude 'dir1/*' --exclude 'dir2' src_directory/ dst_directory/

rsync -a --exclude={'file1.txt', 'dir1/*', 'dir2'} src_directory/ dst_directory/

제외하려는 파일 및 / 또는 디렉토리의 수가 많은 경우 여러 --exclude 옵션을 사용하는 대신 파일에서 제외 할 파일 및 디렉토리를 지정하고 파일을 --exclude-from 전달할 수 --exclude-from 선택권.

아래 명령은 위 명령과 정확히 동일합니다.

rsync -a --exclude-from='exclude-file.txt' src_directory/ dst_directory/ exclude-file.txt

file1.txt dir1/* dir2

패턴을 기반으로 여러 파일 또는 디렉토리 제외

rsync를 사용하면 파일 또는 디렉토리 이름과 일치하는 패턴을 기반으로 파일 및 디렉토리를 제외 할 수도 있습니다.

예를 들어, 모든 .jpg 파일을 제외하려면 다음을 실행하십시오.

rsync -a --exclude '*.jpg*' src_directory/ dst_directory/

특정 패턴과 일치하는 것을 제외한 다른 모든 파일과 디렉토리를 제외하는 것은 조금 까다 롭습니다. .jpg 끝나는 파일을 제외한 다른 모든 파일과 디렉토리를 제외한다고 가정 해 봅시다.

한 가지 옵션은 다음 명령을 사용하는 것입니다.

rsync -a -m --include='*.jpg' --include='*/' --exclude='*' src_directory/ dst_directory/

다중 포함 / 제외 옵션을 사용하는 경우 첫 번째 일치 규칙이 적용됩니다.

  • --include='*.jpg' 먼저 모든 .jpg 파일을 포함시킵니다. --include='*/' -그러면 src_directory 디렉토리 안에 모든 디렉토리가 포함됩니다. 이 rsync가 없으면 최상위 디렉토리의 *.jpg 파일 만 복사합니다. -m 빈 디렉토리를 제거합니다.

또 다른 옵션은 find 명령의 출력을 rsync로 파이프하는 것입니다.

find src_directory/ -name "*.jpg" -printf %P\\0\\n | rsync -a --files-from=- src_directory/ dst_directory/

  • -printf %P\\0\\n 파일 경로에서 src_directory/ 를 제거합니다. --files-from=- 표준 입력의 파일 (find 명령에서 전달 된 파일) 만 포함 함을 의미합니다.

결론

이 학습서에서는 Rsync로 데이터를 전송할 때 파일 및 디렉토리를 제외하는 방법을 배웠습니다. Rsync 사용 설명서 페이지에서 Rsync에 대해 더 많은 정보를 얻을 수 있습니다.

rsync 터미널