Rsync два типи файлів в одній команді?


13

Як записати їх в один рядок, також не повторюючи один і той же шлях?

rsync -a root@somewhere:/folder/remote/*.txt .
rsync -a root@somewhere:/folder/remote/*.jpg .

Відповіді:


18

Я б написав це так:

rsync -a root@somewhere:/folder/remote/*.{txt,jpg} .

7
Це загальна техніка, яку ви можете використовувати з будь-якою командою. Оболонка буде повторювати аргумент, замінюючи вираз дужки кожним елементом у списку. Це називається brace expantion
Шон Дж. Гофф

11
rsync -a --include='*.txt' --include='*.jpg' --exclude='*' root@somewhere:/folder/remote/ .

(Зверніть увагу, що фінал /в /folder/remote/і розміщення --exclude='*'після включати правила є важливими.) У оболонках, які підтримують розширення дужок (наприклад, bash, ksh, zsh):

rsync -a --include='*.'{txt,jpg} --exclude='*' root@somewhere:/folder/remote/ .

Додайте, --include='*/' --prune-empty-dirsякщо ви хочете також копіювати файли у підкаталоги.


rsync 3 *, здається, не працює на * wildcards, хоч включити | виключити роботу добре.
briankip
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.