find.flexfs
find.flexfs provides fast filesystem search by querying the metadata server directly, bypassing the FUSE layer. It supports filters on inode attributes, timestamps, size, cost, permissions, and file type.
find.flexfs [flags] [path...]If no path is specified, the current directory is used. Can operate from within a flexFS mount or connect directly via --metaAddr and --volume.
Output Control
Section titled “Output Control”| Flag | Type | Default | Description |
|---|---|---|---|
--fields | string slice | path | Output fields (comma-separated). Use all for all fields. |
--header | bool | false | Include header row in output |
--noDecode | bool | false | Print base32-encoded paths |
--outputFile, -o | string | Output file path |
Available fields: path, ino, mode, type, perm, blocks, size, size_bin, cost, nlink, uid, gid, ctime, mtime, atime, btime, xattrs.
Connection
Section titled “Connection”| Flag | Type | Default | Description |
|---|---|---|---|
--metaAddr | string | Metadata server address (must pair with --volume) | |
--volume | string | Volume UUID or name (must pair with --metaAddr) |
Inode Filters
Section titled “Inode Filters”| Flag | Type | Default | Description |
|---|---|---|---|
--empty | bool | false | Filter for empty files or directories |
--gid | uint32 | 0 | Filter by group ID |
--ino | uint64 | 0 | Filter by inode number |
--name | string | Filter by dentry name (supports glob patterns) | |
--perm | uint32 | 0 | Filter by permissions (octal) |
--permMask | uint32 | 0 | Permissions filter mask (octal) |
--sparse | bool | false | Filter for sparse files |
--type | string | Filter by inode type: b, c, d, f, l, p, s | |
--uid | uint32 | 0 | Filter by user ID |
Size and Block Filters
Section titled “Size and Block Filters”| Flag | Type | Default | Description |
|---|---|---|---|
--maxBlocks | uint64 | 0 | Maximum blocks filter |
--maxCost | float64 | 0 | Maximum monthly cost filter |
--maxNlink | uint32 | 0 | Maximum hard link count filter |
--maxSize | uint64 | 0 | Maximum byte size filter |
--maxSizeBin | uint32 | 0 | Maximum size bin filter (0-74) |
--minBlocks | uint64 | 0 | Minimum blocks filter |
--minCost | float64 | 0 | Minimum monthly cost filter |
--minNlink | uint32 | 0 | Minimum hard link count filter |
--minSize | uint64 | 0 | Minimum byte size filter |
--minSizeBin | uint32 | 0 | Minimum size bin filter (0-74) |
Timestamp Filters
Section titled “Timestamp Filters”Timestamp values are in nanoseconds since epoch.
| Flag | Type | Default | Description |
|---|---|---|---|
--maxAtime | uint64 | 0 | Maximum access time |
--maxBtime | uint64 | 0 | Maximum birth time |
--maxCtime | uint64 | 0 | Maximum change time |
--maxMtime | uint64 | 0 | Maximum modification time |
--minAtime | uint64 | 0 | Minimum access time |
--minBtime | uint64 | 0 | Minimum birth time |
--minCtime | uint64 | 0 | Minimum change time |
--minMtime | uint64 | 0 | Minimum modification time |
Depth Control
Section titled “Depth Control”| Flag | Type | Default | Description |
|---|---|---|---|
--maxDepth | uint32 | 0 | Maximum query depth (0 = unlimited) |
--minDepth | uint32 | 0 | Minimum query depth |
Internal Flags
Section titled “Internal Flags”| Flag | Type | Default | Description |
|---|---|---|---|
--noMetaSSL | bool | false | Disable SSL for metadata server connections |
Examples
Section titled “Examples”Find all files larger than 1 GiB:
find.flexfs --minSize 1073741824 --type f /mnt/flexfsFind files by name pattern with full metadata:
find.flexfs --name *.bam --fields all --header /mnt/flexfs/dataFind files not accessed in the last 30 days (using nanosecond timestamps):
find.flexfs --maxAtime 1740000000000000000 --type f /mnt/flexfsQuery a volume directly without a local mount:
find.flexfs --metaAddr meta.example.com:443 --volume my-vol --type d /Output Format
Section titled “Output Format”Output is tab-separated. The columns correspond to the --fields list. When --header is set, the first line contains field names.