]> arthur.barton.de Git - bup.git/blobdiff - Documentation/bup-index.md
mux: support wrapping arbitrary commands
[bup.git] / Documentation / bup-index.md
index a2a49797b9f76faf5599bf73112d0d183c646926..280d9eb1d4fe361fc124eb07fceda9573c9f3f4c 100644 (file)
@@ -10,7 +10,8 @@ bup-index - print and/or update the bup filesystem index
 
 bup index \<-p|-m|-s|-u\> [-H] [-l] [-x] [\--fake-valid] [\--no-check-device]
 [\--fake-invalid] [\--check] [\--clear] [-f *indexfile*] [\--exclude *path*]
-[\--exclude-from *filename*] [-v] \<filenames...\>
+[\--exclude-from *filename*] [\--exclude-rx *pattern*]
+[\--exclude-rx-from *filename*] [-v] \<filenames...\>
 
 # DESCRIPTION
 
@@ -18,7 +19,7 @@ bup index \<-p|-m|-s|-u\> [-H] [-l] [-x] [\--fake-valid] [\--no-check-device]
 which is a cache of the filenames, attributes, and sha-1
 hashes of each file and directory in the filesystem.  The
 bup index is similar in function to the `git`(1) index, and
-can be found in `~/.bup/bupindex`.
+can be found in `$BUP_DIR/bupindex`.
 
 Creating a backup in bup consists of two steps: updating
 the index with `bup index`, then actually backing up the
@@ -41,6 +42,15 @@ need the same information).
 
 # NOTES
 
+At the moment, bup will ignore Linux attributes (cf. chattr(1) and
+lsattr(1)) on some systems (any big-endian systems where sizeof(long)
+< sizeof(int)).  This is because the Linux kernel and FUSE currently
+disagree over the type of the attr system call arguments, and so on
+big-endian systems there's no way to get the results without the risk
+of stack corruption (http://lwn.net/Articles/575846/).  In these
+situations, bup will print a warning the first time Linux attrs are
+relevant during any index/save/restore operation.
+
 bup makes accommodations for the expected "worst-case" filesystem
 timestamp resolution -- currently one second; examples include VFAT,
 ext2, ext3, small ext4, etc.  Since bup cannot know the filesystem
@@ -120,9 +130,10 @@ does, due to the accommodations described above.
     format to the `-l` option to `ls`(1).
 
 -x, \--xdev, \--one-file-system
-:   don't cross filesystem boundaries when recursing
-    through the filesystem.  Only applicable if you're
-    using `-u`.
+:   don't cross filesystem boundaries when recursing through the
+    filesystem -- though as with tar and rsync, the mount points
+    themselves will still be indexed.  Only applicable if you're using
+    `-u`.
     
 \--fake-valid
 :   mark specified filenames as up-to-date even if they
@@ -139,19 +150,37 @@ does, due to the accommodations described above.
     updating.  Mostly useful for automated tests.
 
 \--clear
-:   clear the index.
+:   clear the default index.
 
 -f, \--indexfile=*indexfile*
 :   use a different index filename instead of
-    `~/.bup/bupindex`.
+    `$BUP_DIR/bupindex`.
 
 \--exclude=*path*
-:   a path to exclude from the backup (can be used more
-    than once)
+:   exclude *path* from the backup (may be repeated).
 
 \--exclude-from=*filename*
-:   a file that contains exclude paths (can be used more
-    than once)
+:   read --exclude paths from *filename*, one path per-line (may be
+    repeated).  Ignore completely empty lines.
+
+\--exclude-rx=*pattern*
+:   exclude any path matching *pattern*, which must be a Python regular
+    expression (http://docs.python.org/library/re.html).  The pattern
+    will be compared against the full path, without anchoring, so
+    "x/y" will match "ox/yard" or "box/yards".  To exclude the
+    contents of /tmp, but not the directory itself, use
+    "^/tmp/.". (may be repeated)
+
+    Examples:
+
+      * '/foo$' - exclude any file named foo
+      * '/foo/$' - exclude any directory named foo
+      * '/foo/.' - exclude the content of any directory named foo
+      * '^/tmp/.' - exclude root-level /tmp's content, but not /tmp itself
+
+\--exclude-rx-from=*filename*
+:   read --exclude-rx patterns from *filename*, one pattern per-line
+    (may be repeated).  Ignore completely empty lines.
 
 \--no-check-device
 :   don't mark a an entry invalid if the device number (stat(2)
@@ -164,8 +193,7 @@ does, due to the accommodations described above.
     is updated; with two `-v`, print each file too.
 
 
-# EXAMPLE
-
+# EXAMPLES
     bup index -vux /etc /var /usr