[unix] rsync를 사용하여 기본적으로 파일을 제외하려면 어떻게해야합니까?

rsync를 사용하여 기본적으로 파일을 제외하려면 어떻게해야합니까? 일반적인 rsync 구문이 시작되는 방법은 다음과 같습니다.

rsync --exclude ".ht*" --exclude "error_log" --exclude ".DS*" --exclude "old" ...

/etc/rsyncd.conf파일 구성에 대한 많은 언급을 보았지만 rsync 명령보다 데몬에 더 많은 것일 수 있습니다.

위의 기본 구문과 같이 명령 줄에서 호출 할 때 rsync에 대한 기본 제외를 가질 수 있습니까?



답변

파일에 제외를 추가 한 다음 –exclude-from = / path / to / exclude_file을 사용하십시오.

예 :

# cat rsync.excludes
.ht*
error_log
.DS*
old
...

# rsync --exclude-from=rsync.excludes


답변

아니요, rsync호출시 읽을 기본 구성 파일이 없습니다. 당신이 할 수있는 최선이 무엇인지 @ frogstarr78 말한다 제외 할 패턴, 파일 및 디렉토리 이름을 가진 텍스트 파일을 만든 다음 포인트 rsync로에 --exclude-from=filename.


답변

rsync를 사용하면 기본 옵션을 설정할 수 없지만 래퍼 스크립트를 만들어 rsync 바이너리보다 $ PATH에 더 높게 넣을 수 있습니다.

이것은 내 rsync 래퍼입니다. ~/bin/rsync

#!/bin/sh

# Set path to the rsync binary
RSYNC=/usr/bin/rsync

# Look for these exclude files
IGNORE_FILES=(~/.rsyncignore ./.gitignore ./.rsyncignore)

EXCLUDE_FROM=""
for f in ${IGNORE_FILES[@]}; do
  if [[ -e $f ]]; then
    EXCLUDE_FROM="$EXCLUDE_FROM --exclude-from=$f "
  fi
done
$RSYNC $EXCLUDE_FROM "$@"

그것은 찾는 것 ~/.rsyncignore, ./.gitignore, ./.rsyncignore파일 및 그 중 하나가 존재하는 경우, 기본으로 사용할 --exclude-from인수입니다.

환경과 선호도에 맞게 RSYNC 및 IGNORE_FILES를 변경하십시오.


답변

–exclude “/ *”는 기본적으로 모든 것을 제외합니다. 예를 들면 다음과 같습니다.

rsync -av --include "bin /"- "/ *"제외 / source_dir / / dest_dir /


답변