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/

関連情報