Provided by: syncthing_1.18.0~ds1-3ubuntu0.3_amd64 bug

NAME

       syncthing-stignore - Prevent files from being synchronized to other nodes

SYNOPSIS

          .stignore

DESCRIPTION

       If  some  files  should  not  be  synchronized to (or from) other devices, a file called .stignore can be
       created containing file patterns to ignore. The .stignore file must be placed in the root of the  folder.
       The  .stignore file itself will never be synced to other devices, although it can #include files that are
       synchronized between devices. All patterns are  relative  to  the  folder  root.   The  contents  of  the
       .stignore file must be UTF-8 encoded.

       NOTE:
          Note  that  ignored  files  can block removal of an otherwise empty directory.  See below for the (?d)
          prefix to allow deletion of ignored files.

PATTERNS

       The .stignore file contains a list of file or path patterns. The first pattern that matches  will  decide
       the fate of a given file.

       • Regular  file names match themselves, i.e. the pattern foo matches the files foo, subdir/foo as well as
         any directory named foo. Spaces are treated as regular characters,  except  for  leading  and  trailing
         spaces, which are automatically trimmed.

       • Asterisk (*) matches zero or more characters in a filename, but does not match the directory separator.
         te*ne matches telephone, subdir/telephone but not tele/phone.

       • Double  asterisk  (**)  matches  as  above,  but  also directory separators.  te**ne matches telephone,
         subdir/telephone and tele/sub/dir/phone.

       • Question mark (?) matches a single character that is not the directory separator. te??st matches tebest
         but not teb/st or test.

       • Square brackets ([]) denote a character range: [a-z] matches any lower case character.

       • Curly brackets ({}) denote a set of comma separated  alternatives:  {banana,pineapple}  matches  either
         banana or pineapple.

       • Backslash  (\)  “escapes”  a  special  character  so  that  it  loses its special meaning. For example,
         \{banana\} matches {banana} exactly and does not  denote  a  set  of  alternatives  as  above.  Escaped
         characters are not supported on Windows.

       • A  pattern  beginning  with  /  matches  in  the  root  of  the  folder only.  /foo matches foo but not
         subdir/foo.

       • A pattern beginning with #include results in loading patterns from the named file. It is an error for a
         file to not exist or be included more than once. Note that while this can be used to  include  patterns
         from  a file in a subdirectory, the patterns themselves are still relative to the folder root. Example:
         #include more-patterns.txt.

       • A pattern beginning with a ! prefix negates the pattern: matching files  are  included  (that  is,  not
         ignored). This can be used to override more general patterns that follow.

       • A  pattern  beginning  with  a  (?i) prefix enables case-insensitive pattern matching. (?i)test matches
         test, TEST and tEsT. The (?i) prefix can be combined with  other  patterns,  for  example  the  pattern
         (?i)!picture*.png  indicates  that Picture1.PNG should be synchronized. On Mac OS and Windows, patterns
         are always case-insensitive.

       • A pattern beginning with a (?d) prefix enables removal of these files if they are preventing  directory
         deletion. This prefix should be used by any OS generated files which you are happy to be removed.

       • A line beginning with // is a comment and has no effect.

       NOTE:
          Prefixes  can  be  specified  in  any  order  (e.g.  “(?d)(?i)”),  but  cannot  be in a single pair of
          parentheses (not “(?di)”).

       NOTE:
          Include patterns (that begin with !) cause Syncthing to traverse and watch the entire  directory  tree
          regardless of other ignore patterns.

          Top-level  include  patterns  are  treated  as  special cases and will not force Syncthing to scan the
          entire directory tree. For example: !/foo is a top-level include pattern, while !/foo/bar is not.

EXAMPLE

       Given a directory layout:

          .DS_Store
          foo
          foofoo
          bar/
              baz
              quux
              quuz
          bar2/
              baz
              frobble
          My Pictures/
              Img15.PNG

       and an .stignore file with the contents:

          (?d).DS_Store
          !frobble
          !quuz
          foo
          *2
          qu*
          (?i)my pictures

       all files and directories called “foo”, ending in a “2” or starting with “qu” will be  ignored.  The  end
       result becomes:

          .DS_Store     # ignored, will be deleted if gets in the way of parent directory removal
          foo           # ignored, matches "foo"
          foofoo        # synced, does not match "foo" but would match "foo*" or "*foo"
          bar/          # synced
              baz       # synced
              quux      # ignored, matches "qu*"
              quuz      # synced, matches "qu*" but is excluded by the preceding "!quuz"
          bar2/         # synced, despite matching "*2" due to child frobble
              baz       # ignored, due to parent being ignored
              frobble   # synced, due to "!frobble"
          My Pictures/  # ignored, matched case insensitive "(?i)my pictures" pattern
              Img15.PNG # ignored, due to parent being ignored

       NOTE:
          Please  note  that  directory  patterns ending with a slash some/directory/ matches the content of the
          directory, but not the directory itself. If you want the  pattern  to  match  the  directory  and  its
          content, make sure it does not have a / at the end of the pattern.

AUTHOR

       The Syncthing Authors

COPYRIGHT

       2014-2019, The Syncthing Authors

v1                                                Jun 14, 2021                             SYNCTHING-STIGNORE(5)