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/