Include inode in JSON output for find and ls

This introduces the inode attribute to the JSON output emitted for nodes
in `ls` and matches in `find`. There doesn't seem to be any discernible
reason to omit the inode and it can be useful in scripting scenarios.
This commit is contained in:
Daniel Danner 2023-10-11 20:35:43 +02:00
parent 4087c3aff7
commit a858ab254b
4 changed files with 13 additions and 1 deletions

View File

@ -0,0 +1,7 @@
Enhancement: Include inode numbers in JSON output for find and ls
Restic used to omit the inode numbers in the JSON messages emitted for nodes by
the `ls` command as well as for matches by the `find` command. It now includes
those values whenever they are available.
https://github.com/restic/restic/pull/4511

View File

@ -126,7 +126,6 @@ func (s *statefulOutput) PrintPatternJSON(path string, node *restic.Node) {
// Make the following attributes disappear
Name byte `json:"name,omitempty"`
Inode byte `json:"inode,omitempty"`
ExtendedAttributes byte `json:"extended_attributes,omitempty"`
Device byte `json:"device,omitempty"`
Content byte `json:"content,omitempty"`

View File

@ -87,6 +87,7 @@ func lsNodeJSON(enc *json.Encoder, path string, node *restic.Node) error {
ModTime time.Time `json:"mtime,omitempty"`
AccessTime time.Time `json:"atime,omitempty"`
ChangeTime time.Time `json:"ctime,omitempty"`
Inode uint64 `json:"inode,omitempty"`
StructType string `json:"struct_type"` // "node"
size uint64 // Target for Size pointer.
@ -102,6 +103,7 @@ func lsNodeJSON(enc *json.Encoder, path string, node *restic.Node) error {
ModTime: node.ModTime,
AccessTime: node.AccessTime,
ChangeTime: node.ChangeTime,
Inode: node.Inode,
StructType: "node",
}
// Always print size for regular files, even when empty,

View File

@ -277,6 +277,8 @@ Match object
+-----------------+----------------------------------------------+
| ``group`` | Name of group |
+-----------------+----------------------------------------------+
| ``inode`` | Inode number |
+-----------------+----------------------------------------------+
| ``mode`` | UNIX file mode, shorthand of ``permissions`` |
+-----------------+----------------------------------------------+
| ``device_id`` | OS specific device identifier |
@ -470,6 +472,8 @@ node
+-----------------+--------------------------+
| ``ctime`` | Node creation time |
+-----------------+--------------------------+
| ``inode`` | Inode number of node |
+-----------------+--------------------------+
restore