rsync는 제외된 디렉터리를 생성합니다.

rsync는 제외된 디렉터리를 생성합니다.

rsync가 파일과 디렉터리를 포함/제외하는 방법이 혼란스럽습니다. 제외 파일이 있습니다.

/home/pi/rsync-exclude.txt

콘텐츠:

/proc/*
/sys/*
/dev/*
/boot/*
/tmp/*
/run/*
/mnt/*
/media/*

.Trashes
._.Trashes
.fseventsd
.Spotlight-V100
.DS_Store
.AppleDesktop
.AppleDB
Network Trash Folder
Temporary Items

.bash_history
/etc/fake-hwclock.data
/var/lib/rpimonitor/stat/

다음 rsync 구문을 사용합니다.

sudo rsync -avH --delete-during --delete-excluded --exclude-from=/home/pi/rsync-exclude.txt / /mnt/

그러나 rsync는 /mnt/proc, /mnt/sys 등의 디렉터리를 생성합니다. 비어 있지만 아예 존재하지 않았으면 좋겠습니다.

rsync가 디렉터리를 완전히 무시하도록 다른 구문을 사용할 수 있습니까?

답변1

/foo/*귀하의 표현식은 디렉토리 자체( )가 아닌 디렉토리( ) 의 내용을 제외합니다 /proc. 예를 들어:

$ mkdir -p foo/{1..3}/{1..3}
$ cat exclude.txt 
/1/*
/2
$ rsync -avH --exclude-from=exclude.txt foo/ bar
sending incremental file list
created directory bar
./
1/
3/
3/1/
3/2/
3/3/

sent 296 bytes  received 89 bytes  770.00 bytes/sec
total size is 0  speedup is 0.00

보시다시피, 단순히 디렉토리 경로를 사용하는 것만으로도 해당 경로와 해당 내용을 모두 제외할 수 있습니다. 이상한 점은 제외 목록의 끝에 이것을 사용했다는 것입니다.

/var/lib/rpimonitor/stat/

관련 정보