1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
# metastore(1) January 2016 | General Commands Manual
## NAME
metastore - stores and restores filesystem metadata
## SYNOPSIS
**metastore** *ACTION* \[*OPTION...*\] \[*PATH...*\]
## DESCRIPTION
Stores or restores metadata (owner, group, permissions, xattrs and optionally
mtime) for a filesystem tree. This can be used to preserve the metadata in
situations where it is usually not stored ([git(1)](GIT) and [tar(1)](TAR) for
example) or as a tripwire like mechanism to detect any changes to metadata.
Note that e.g. SELinux stores its labels in xattrs so care should be taken when
applying stored metadata to make sure that system security is not compromised.
## ACTIONS
### -c, \-\-compare
Shows the difference between the stored and real metadata.
### -s, \-\-save
Saves the current metadata to `./.metadata` or to the specified file (see
`--file` option below).
### -a, \-\-apply
Attempts to apply the stored metadata to the file system.
### -d, \-\-dump
Dumps stored (if no *PATH* is given) or real metadata (if *PATH* is present,
e.g. `./`) in human-readable form.
This action is meant only as a helpful debugging facility or merge conflict
helper. Do not ever compare its output generated using different metastore
version. Do not rely on current output format (especially in batch scripts),
because it may change in future without prior notice.
### -h, \-\-help
Prints a help message and exits.
## OPTIONS
### -v, \-\-verbose
Causes metastore to print more verbose messages. Can be repeated more than once
for even more verbosity.
### -q, \-\-quiet
Causes metastore to print less verbose messages. Can be repeated more than once
for even less verbosity.
### -m, \-\-mtime
Causes metastore to also take mtime into account for the compare or apply
actions.
### -e, \-\-empty-dirs
Also attempts to recreate missing empty directories. May be useful where empty
directories are not tracked (e.g. by [git(1)](GIT) or [cvs(1)](CVS)). Only works
in combination with the `--apply` option.
### -E, \-\-remove-empty-dirs
Also attempts to remove empty directories missing from the metadata. May be
useful where empty directories are not tracked (e.g. by [git(1)](GIT) or
[cvs(1)](CVS)). Only works in combination with the `--apply` option.
### -g, \-\-git
Prevents metastore from omitting `.git` directories.
### -f \<file\>, \-\-file \<file\>
Causes the metadata to be saved, read from the specified file rather than
`./.metadata`.
## PATHS
If no path is specified, `metastore` will use the current directory as the basis
for the actions. This is the recommended way of executing metastore.
Alternatively, one or more paths can be specified and they will each be
examined. Later invocations should be made using the exact same paths to ensure
that the stored metadata is interpreted correctly.
## AUTHORS
`metastore` was created by David Härdeman in 2007-2008. Now it is maintained by
Przemysław Pawełczyk. All source code contributors are listed in the `AUTHORS`
file.
[CVS]: man:cvs(1)
[GIT]: man:git(1)
[TAR]: man:tar(1)
|