我希望将位于各个子文件夹中的一堆flac文件同步到目标文件夹的根目录。
源上的目录结构示例是:
source> tree Music/
Music/
├── R
│ ├── Radiohead
│ │ └── OK Computer
│ │ ├── 01 - Radiohead - Airbag.flac
│ │ ├── 02 - Radiohead - Paranoid Android.flac
│ └── Red Hot Chilli Peppers
│ └── Greatest Hits
│ ├── 01 - Red Hot Chili Peppers - Under the Bridge.flac
│ ├── 02 - Red Hot Chili Peppers - Give It Away.flac
我正在使用此命令同步正常但包含目标路径上的目录路径:
rsync -rltDzvh --delete -e ssh Music/ user@192.168.1.1:/Destination/ --include="*/" --include="*.flac" --exclude="*"
所以在目的地结构是:
destination> tree /Destination/
/Destination/
├── R
│ ├── Radiohead
│ │ └── OK Computer
│ │ ├── 01 - Radiohead - Airbag.flac
│ │ ├── 02 - Radiohead - Paranoid Android.flac
│ └── Red Hot Chilli Peppers
│ └── Greatest Hits
│ ├── 01 - Red Hot Chili Peppers - Under the Bridge.flac
│ ├── 02 - Red Hot Chili Peppers - Give It Away.flac
我想修剪所有目录,只有文件放在/ Destination /例如
的根目录中destination> tree /Destination/
/Destination/
├── 01 - Radiohead - Airbag.flac
├── 02 - Radiohead - Paranoid Android.flac
├── 01 - Red Hot Chili Peppers - Under the Bridge.flac
├── 02 - Red Hot Chili Peppers - Give It Away.flac
所有文件都有不同的名称,这样就可以了,我已经查看了rsync中的各种选项,例如--no-relative但是无法按照需要运行它。
我也提出了:
find ./Music/ -name "*.flac" -exec rsync -ltDzvh {} -e ssh user@192.168.1.1:/Destination/ \;
但这意味着使用ssh键并且可能效率低下,如果我想使用--delete,它可能会破坏所有内容。
那么,当我在源上的音乐库中添加,删除或重命名项目并将这些更改同步到目标时,我仍然可以使用--delete或--delete-excluded来实现此目的吗?