В настольном приложении файлы .megaignore представляют собой обычные текстовые файлы, которые определяют, какие файлы или папки исключаются из синхронизации.
Как это работает?
Вы можете настроить правила .megaignore для использования на всех устройствах, когда папка синхронизируется на нескольких устройствах. Это достигается за счёт синхронизации самого файла .megaignore, так что он присутствует и на других устройствах, а изменения в правилах также синхронизируются. По умолчанию файлы .megaignore не синхронизируются.
Правила в локальной копии файла .megaignore применяются всегда. Вы не можете заставить синхронизацию игнорировать сам файл .megaignore, но вы можете исключить его родительскую папку (при условии, что она не находится в корне синхронизации), и тогда он больше не будет частью синхронизации. Если локального файла .megaignore нет, а он есть в облаке, то он будет скачан перед продолжением синхронизации в этой папке и ниже по дереву.
В большинстве синхронизаций содержится только один файл .megaignore, который находится в корневой папке, и правила которого определяют включение и исключение для каждого каталога и файла во всей синхронизации. Если синхронизация начинается без него, будет добавлен файл по умолчанию. Дополнительные правила для исключения или повторного включения различных названий можно добавить в другие папки синхронизации, и они будут применяться в этой папке и ниже по дереву.
Перемещение, удаление или переименование файлов .megaignore может означать, что правила из этих файлов внезапно исчезнут, что приведёт к синхронизации ранее исключённых файлов и папок. Поэтому здесь рекомендуется соблюдать осторожность.
Если в файле .megaignore есть ошибки, например не соблюдён приведённый ниже синтаксис или одно или несколько содержащихся в файле правил непонятны при запуске синхронизации, то эту папку невозможно синхронизировать, что приведёт к остановке синхронизации. Это также может повлиять на другие части синхронизации, поскольку может оказаться невозможным определить, какие папки сканировать и были ли перемещены недостающие элементы или нет. Пользователь может проверить проблемы с задержкой синхронизации, чтобы увидеть, где эти они возникли, а затем исправить их.
Ниже приведены инструкции по просмотру и редактированию файлов .megaignore.
Что находится в файле .megaignore?
Файлы .megaignore могут содержать комментарии, пробелы и фильтры.
Комментарии используются для документирования и игнорируются при загрузке файла .megaignore. Комментарий начинается с начала строки с символа #. Обратите внимание, что перед символом # не должно быть пробелов и что комментарий заканчивается с концом строки.
Более подробную информацию о пробелах и о том, как их использовать, вы можете найти здесь.
Фильтры задаются построчно и бывают двух видов: фильтры по названию и фильтры по размеру.
Фильтры по названию
Фильтры по названию сопоставляются с названием или типом файла. Вы можете использовать такие фильтры, чтобы исключить папки или файлы, названия которых соответствуют определённому шаблону.
Name filters have the general format: <CLASS><TARGET><TYPE><STRATEGY>:<PATTERN>
<CLASS>
Фильтры должны принадлежать одному из двух классов: exclude (исключить) или include (включить).
-
: Filters of the exclude class specify files or folders that should not be synchronized.
This class is indicated by the — character.
: Filters of the include class specify files or folders that should be synchronized.
This class is indicated by the character.
<TARGET>
У фильтров может быть указана одна из следующих целей: all (все), directory (папка), file (файл) или symlink (символическая ссылка).
a
: Цель all указывает, что этот фильтр применяется к файлам, папкам и символическим ссылкам, и обозначается символом «а
».
d
: Цель directory указывает, что этот фильтр применяется только к папкам, и обозначается символом «d
».
f
: Цель file указывает, что этот фильтр применяется только к файлам, и обозначается символом «f
».
s
: Цель symlink указывает, что этот фильтр применяется только к символическим ссылкам, и обозначается символом «s
».
Если не указать цель явно, будет использоваться цель a
all.
<TYPE>
Фильтры могут быть одного из следующих трёх типов: local name (локальное название), subtree name (название вниз по дереву) или path (путь).
N
: Фильтры local name действуют только в папке, содержащей файл .megaignore.
n
: Фильтры subtree name действуют только папке, содержащей файл .megaignore и во всех вложеннных папках вниз по дереву.
p
: Фильтры path обозначаются символом «p
» и сопоставляются с путём к файлу или папке относительно папки, содержащей файл .megaignore. Обратите внимание, что разделителем пути всегда является символ «/», даже в Windows.
Если не указать тип явно, будет использоваться тип n
subtree name. Если не указано, по умолчанию используется p
или n
в зависимости от наличия символа «/», т. е. от того, пытается ли пользователь использовать путь.
<STRATEGY>
Фильтры могут использовать одну из двух следующих стратегий сопоставления: glob (глобальное сопоставление) или regexp (регулярное выражение).
Gg
: Фильтры glob обозначаются символами g
или G
и сопоставляются с именем или путём с использованием шаблона с символами-джокерами.
Rr
: Фильтры regexp обозначаются символами r
или R
и сопоставляются с именем или путём с использованием шаблона в виде расширенного регулярного выражения POSIX.
Если не указать стратегию сопоставления явно, будет использоваться стратегия glob.
Прописные буквы G или R указывают, что сопоставление должно выполняться с учётом регистра.
<SYNC_THIS_FILE>
Используйте именно этот синтаксис в одной строке, чтобы включить или отключить синхронизацию самих файлов .megaignore и поделиться или не поделиться правилами в файле с другими синхронизациями той же папки. По умолчанию файл не синхронизируется.
sync:.megaignore
-sync:.megaignore
Примеры
# This is a comment.
Все, что написано после #, включая #, игнорируется.
-f:*.txt
This is a subtree name exclusion matched using a wildcard pattern.
It will exclude all *.txt files in and beneath the folder containing the .megaignore file.
fg:work*.txt
Это включение по названию вниз по дереву с использованием шаблона с символами-джокерами. Будут включены все файлы «работа*.txt», исключённые правилом *.txt, указанным выше.
-fn:*.jpg
Это тоже исключение по названию вниз по дереву с использованием шаблона с символами-джокерами. Будут исключены все файлы «*.jpg» в этой папке и во всех вложенных вниз по дереву.
fng:family*.jpg
Это тоже включение по названию вниз по дереву с использованием шаблона с символами-джокерами. Будут включены все файлы «семья*.jpg», ранее исключённые правилом *.jpg, указанным выше.
-N:*.avi
Это тоже локальное исключение по названию с использованием шаблона с символами-джокерами. Будут исключены все файлы «*.avi» только в этой папке.
-fp:video/*.avi
Это исключение по пути с использованием шаблона с символами-джокерами. Будут исключены все файлы «*.avi» в подпапке «видео».
fpg:video/family/*.avi
Это включение по пути с использованием шаблона с символами-джокерами. Будут включены все файлы «*.avi» в подпапке «видео/семья».
-nr:.*foo.*
Это исключение по названию вниз по дереву с использованием регулярного выражения. Будут исключены все файлы, название которых содержит «foo».
-d:private
Это исключит все папки с названием «личное».
-:*
Исключит всё, что находится в этой папке и ниже.
Фильтры по размеру
Фильтры по размеру сопоставляются с размером файла и могут использоваться для исключения файлов, размер которых больше, меньше или находится в указанных пределах.
Фильтры по размеру предназначены только для того, чтобы файлы не добавлялись в синхронизацию. После синхронизации файла фильтры по размеру к нему больше не применяются. Синхронизация уже синхронизируемых файлов продолжится, если изменить предельные значения размера или размер самих файлов.
Size filters have the general form: <THRESHOLD>:<VALUE><UNIT>
<THRESHOLD>
В элементе «threshold» указываются границы размера.
Можно указать два пороговых значения:
exclude-smaller
: Specifies the lower-bound. Files smaller than the specified value will be excluded.exclude-larger
: Specifies the upper bound. Files larger than the specified value will be excluded.
Если указать оба пороговых значения, файлы с размером вне указанного диапазона будут исключены.
Недопустимо указывать нижнюю границу, превышающую или равную верхней границе.
<VALUE>
В элементе «value» указывается значение для заданного порога.
Допустимо любое целое неотрицательное значение.
<UNIT>
В необязательном элементе «unit» указываются единицы измерения.
K : The value is specified in kilobytes.
M : The value is specified in megabytes.
G : The value is specified in gigabytes.
Units are not case-sensitive so k
would also specify kilobytes.
Если единица измерения не указана, значение интерпретируется как байтовое.
Примеры
exclude-smaller:4k
Исключить файлы меньше 4 килобайт.
exclude-larger:8M
Исключить файлы больше 8 мегабайт.
exclude-smaller:4K
exclude-larger:8m
Исключить файлы меньше 4 килобайт и больше 8 мегабайт.
Предупреждение
Обратите внимание, что при скачивании файла .megaignore его правила не начинают действовать до тех пор, пока скачивание не завершится и файл .megaignore не будет успешно скачан. Имейте это в виду, если захотите переместить файлы .megaignore в облаке.
В качестве примера того, как такое поведение может вас удивить, рассмотрим случай перемещения файла .megaignore вверх по иерархии папок. Вы могли бы ожидать, что правила файла .megaignore будут действовать в исходной папке до тех пор, пока файл .megaignore не появится в новом расположении.
Это не обязательно так, поскольку механизм синхронизации может интерпретировать эти события как удаление файла .megaignore в источнике и добавление нового файла .megaignore в целевую папку. В этом случае правила, присутствующие в источнике, удаляются и будут применены повторно только после повторного скачивания файла .megaignore.
Если вы перемещаете файлы .megaignore и вам важно, чтобы фильтры продолжали действовать исходном расположении до завершения перемещения, нужно сначала скопировать файл .megaignore в новое расположение, а оригинал удалить после синхронизации копии.