rsync를 사용하여 홈 디렉토리를 백업하려고하는데 정크가 포함 된 디렉토리 중 일부를 제외하고 싶습니다. 특별히 제외 /home/ben/.ccache
하고 싶습니다 /home/ben/build
. 불행히도 rsync에 대한 설명서는 정보 과부하이며 내 질문에 대답하지 못했습니다. 이것이 내가 시도한 것입니다.
rsync -arv --exclude "/home/ben/.ccache:/home/ben/build" /home/ben /media/ben/thumbdrive/
이것을하는 올바른 방법은 무엇입니까?
답변
알았어 정말 바보 같아 이 질문을 게시하기 전에 친구가 어떻게해야하는지 보여 주었고 정말 간단합니다. 여러 디렉토리를 제외하려면 여러 --exclude=path
스위치를 사용하면 됩니다. 위의 올바르게 작성된 명령은 다음과 같습니다.
rsync -arv --exclude=.ccache --exclude=build /home/ben /media/ben/thumbdrive/
답변
제외 할 디렉토리 및 / 또는 파일이 여러 개인 경우 텍스트 파일을 만들고 --exclude-from
스위치를 사용하십시오 . 파일을 만들어 그 exclude_me.txt
안에 제외를 나열하십시오. 예 ( /home/ben/exclude_me.txt
) :
.ccache
build
.java
.gvfs
.xsession-errors
그런 다음 rsync는 다음과 같습니다.
rsync -arv --exclude-from='/home/ben/exclude_me.txt' /home/ben /media/ben/thumbdrive/
다음은 도움이 될 수있는 필터 규칙에 대한 정보입니다.
/dir/
루트 폴더를 제외한다는 의미/dir
/dir/*
루트 폴더를 가져/dir
오지만 내용 은 얻지 못합니다.-
dir/
이름에 포함 된 모든 폴더를 제외 함을 의미합니다.dir/
-
제외 된 예 : 폴더 내에서
/dir/, /usr/share/directory/, /var/spool/dir/
시작하는 파일을 건너 뜁니다 .
/var/spool/lpd/cfcf
/var/spool/lpd
매뉴얼 페이지 의 필터 규칙 섹션 도 참조 하십시오.
답변
중괄호 내에서 여러 경로를 제외 할 수도 있습니다.
rsync -arv --exclude={.ccache,build} /home/ben /media/ben/thumbdrive/