Depois de pesquisar um pouco mais, descobri que não posso fazer isso no rsync (pelo menos no rsync que está instalado no meu mac.)
No entanto, encontrei um script para fazer essencialmente isso. Você terá que mexer com caminhos e o que não, mas funciona.
Do usuário "cpbills" no link
#!/bin/bash
playlist_path="/home/cpbills/.config/mpd/playlists"
playlist="${playlist_path}/${1}.m3u"
music_src="/home/cpbills/files/music"
music_dst="/mnt/sdcard/music/"
if [[ -e "$playlist" ]]; then
# Remove old files
find "$music_dst" -type f | while read file; do
name="$(echo "$file" | sed -e "s!^$music_dst!!")"
if ! grep -qF "$name" "$playlist"; then
rm "$file"
fi
done
# Remove empty directories
find "$music_dst" -type d -exec rmdir {} \; 2>/dev/null
rsync -vu \
--inplace \
--files-from="$playlist" \
"$music_src" "$music_dst"
else
printf "%s does not exist\n" "$playlist" 1>&2
exit 1
fi
Pessoalmente, eu dobrei a linha "remover diretórios vazios" porque, como o script acima fica, ele só remove uma camada de diretórios vazios. Portanto, se você tiver / Folder1 / Folder2 / Folder3 e executar o comando, ainda terá / Folder1 / Folder2 /. Se você executá-lo duas vezes, você terá / Folder1 /