Я посещаю занятия с большим количеством фонетического и грамматического анализа. Мне дали учетную запись в сети Windows 10. Поскольку мне гораздо удобнее работать с Mac и Linux (и поскольку часы работы Windows ограничены), я работаю на своем ноутбуке Mac.
Я автоматически смонтировал свои каталоги NTFS, но с их локальной сетью что-то не так, поэтому довольно часто некоторые приложения имеют доступ только для чтения или вообще не имеют доступа.
Следовательно, я работаю в локальном экземпляре и частоrsyncизменения. Но rsync* всегда обновляет каждый каталог NTFS — только каталог, никогда не обновляет файлы (кроме тех, которые я действительно изменил). В большинство из этих каталогов я никогда не заходил, ноrsyncсообщает об обновлениях по всему дереву подкаталогов. Это не серьезно — завершается за секунды — но все равно довольно странно.
Что делают Windows и NTFS с каталогами, к которым никогда не обращаются, из-за чего rsync считает, что они изменились?
решение1
Разрешить сравнение мод-времен с уменьшенной точностью
При таком типе настройки, когда вы монтируете раздел NTFS, вам нужно убедиться, что вы используете соответствующие параметры, например, --modify-window=5
увеличить значение по умолчанию, чтобы можно было сравнивать время модов с меньшей точностью.
--modify-window When comparing two timestamps, rsync treats the timestamps as being equal if they differ by no more than the modify-window value. This is normally 0 (for an exact match), but you may find it useful to set this to a larger value in some situations. In particular, when transferring to or from an MS Windows FAT filesystem (which represents times with a 2-second resolution), --modify-window=1 is useful (allowing times to differ by up to 1 second).
Дополнительные ресурсы
решение2
Сначала ответим на проблему программ только для чтения. Поскольку сетевой ресурс контролируется Windows, Windows разрешает делать что-либо только определенным пользователям. Это может быть общедоступный ресурс, IE, любой может просматривать его, загружать файлы и т. д., но не изменять его, если специально не добавлена возможность сделать это. Поскольку вы используете Mac, который похож на Linux. Не каждое приложение Linux, которое вы используете, использует то же имя пользователя, под которым вы в данный момент вошли на свой Mac или Linux. Следовательно, поскольку программа не использует ваше имя пользователя, вошедшего в систему, ей не предоставлены права редактировать файлы в соответствии с Windows, поскольку имя пользователя не совпадает.
Во-вторых, Rsync рекурсивен. Это значит, что он пройдет по всем каталогам. Если вы не ограничите его определенным каталогом, но даже если вы ограничите его одним каталогом, он продолжит проходить по всем каталогам, которые находятся в каталоге, с которого он начал. Именно для этого он и предназначен. Поэтому он называется рекурсивной синхронизацией. Теперь причина обновления каталогов, а не файлов, может заключаться в том, как rysnc получает временную метку из каталогов. Это может быть связано с тем, что его каталоги Windows 10 не имеют временной метки изменения или доступа, а только временную метку создания каталога, тогда как файлы имеют все эти временные метки, которые rsync использует для определения необходимости обновления каталогов или файлов.