/parfind

A parallel, simplified version of find(1) for use on high-latency, highly-parallel file systems.

Primary LanguageGoMIT LicenseMIT

parfind

GitHub release Travis Go Documentation

A parallel, simplified version of find(1) for use on high-latency, highly-parallel file systems.

Usage

parfind -root=<directory> will recursively list all files and directories in <directory>. The output order is undefined. For each file/directory a line will be printed to stdout:

<type> <mtime> <size> <name>

where <type> is the type (e.g. f for regular files, d for directories, l for symbolic links, etc.), <mtime> is the UNIX timestamp of the file/directory mtime, <size> is the size in bytes, <name> is the quoted and escaped absolute path. Fields are space separated and lines are terminated by a newline.

If the -print0 option is used fields and lines are terminated by a NUL byte and the <name> field is not quoted or escaped: this is useful for passing the output to command line tools that support this convention, e.g. xargs -0:

<type><NUL><mtime><NUL><size><NUL><name><NUL>

Build

Just run below in the project directory:

$ go build

Contribution

  1. Fork (https://github.com/rakutentech/parfind/fork)
  2. Create a feature branch
  3. Add features and its tests as appropriate
  4. Commit your changes
  5. Rebase your local changes against the master branch
  6. Run test suite with the go test command and confirm that it passes
  7. Run gofmt -s
  8. Create new Pull Request

Author

Carlo Alberto Ferraris (Rakuten, Inc.)