Допустим, я хочу синхронизировать папку с помощью 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 ГБ перемещаются из одного раздела в другой, а затем быстро удаляются.