randselect

Crates.io docs.rs GitHub Workflow Status

This crate provides a simple command line utility for randomly selecting N files from a directory and copying or moving them to a target directory.

randselect operates (inefficiently) by generating a random permutation of the files in a given directory, then moving or copying the first N files in the resulting permutation to a target directory.

Could you do this with a few lines of bash? Almost certainly! This was just an excuse to write some Rust.

Install

You can install this with Cargo:

$ cargo install randselect

Usage

``` randselect Tool for randomly selecting files from a directory.

USAGE: randselect [FLAGS] [OPTIONS]

FLAGS: -g, --go Execute the copy or move. Specify a seed for deterministic behavior -h, --help Prints help information -m, --move-files Whether to move the files from INDIR to OUTDIR, rather than cp -V, --version Prints version information

OPTIONS: -n, --num-files The number of files to select [default: 1] -s, --seed The seed to use for the PRNG (u64)

ARGS: The directory to output to. Will be created if it doesn't exist The input directory to select from ```