Как синхронизировать только один тип файлов с Unison?

Как синхронизировать только один тип файлов с Unison?

Допустим, я хочу синхронизировать папку с помощью Unison, но я хочу синхронизировать только файлы .jpg.

Как я мог это сделать?

решение1

Вам необходимо добавить в свой профиль следующие строки:

ignore = Name ?*
ignorenot = Name *.jpg

решение2

Восемь лет спустя... Accepted не игнорирует должным образом файлы без точек или файлы с точками.

И любой шаблон (например, Regex ^((?!.jpg).)*$), который соответствует этим, также поглотит каталоги, которые могут иметь .jpg в качестве дочернего элемента. (См. «Unison начинает обнаруживать обновления...» в разделеИгнорирование путейв руководстве.)

Единственный способ, который я нашел, — это позволить синхронизации продолжиться с этими дополнительными файлами, а затем использовать

find "$DEST" --type f ! -iname "*.jpg" -delete
find "$DEST" --type d -empty -delete

чтобы убить их, а затем очистить пустые каталоги. (В моем случае я действительно сделал это

find "$DEST" --type d -empty ! -name ".stfolder" -delete

(Чтобы сохранить каталог маркеров SyncThing, не спрашивайте.)

Потенциально плохим последствием этого является копирование большого количества дополнительных данных за короткое время — в моем случае около 3,5 ГБ перемещаются из одного раздела в другой, а затем быстро удаляются.

Связанный контент