#unix-command #cross-platform #command #unix #which-rs

which

A Rust equivalent of Unix command "which". Locate installed executable in cross platforms.

24 stable releases (6 major)

6.0.1 Mar 22, 2024
5.0.0 Oct 18, 2023
4.4.2 Sep 4, 2023
4.4.0 Jan 20, 2023
0.1.0 Oct 6, 2015

#3 in Filesystem

Download history 979530/week @ 2024-01-05 974283/week @ 2024-01-12 1107296/week @ 2024-01-19 1089886/week @ 2024-01-26 1080618/week @ 2024-02-02 1125925/week @ 2024-02-09 1094864/week @ 2024-02-16 1248562/week @ 2024-02-23 1155598/week @ 2024-03-01 1174564/week @ 2024-03-08 1152758/week @ 2024-03-15 1137806/week @ 2024-03-22 1093238/week @ 2024-03-29 1096293/week @ 2024-04-05 1085482/week @ 2024-04-12 901733/week @ 2024-04-19

4,381,493 downloads per month
Used in 2,984 crates (551 directly)

MIT license

36KB
694 lines

Build Status

which

A Rust equivalent of Unix command "which". Locate installed executable in cross platforms.

Support platforms

  • Linux
  • Windows
  • macOS

Examples

  1. To find which rustc executable binary is using.

    use which::which;
    
    let result = which("rustc").unwrap();
    assert_eq!(result, PathBuf::from("/usr/bin/rustc"));
    
  1. After enabling the regex feature, find all cargo subcommand executables on the path:

    use which::which_re;
    
    which_re(Regex::new("^cargo-.*").unwrap()).unwrap()
        .for_each(|pth| println!("{}", pth.to_string_lossy()));
    

MSRV

This crate currently has an MSRV of Rust 1.70. Increasing the MSRV is considered a breaking change and thus requires a major version bump.

We cannot make any guarantees about the MSRV of our dependencies. You may be required to pin one of our dependencies to a lower version in your own Cargo.toml in order to compile with the minimum supported Rust version. Eventually Cargo will handle this automatically. See rust-lang/cargo#9930 for more.

Documentation

The documentation is available online.

Dependencies

~2–11MB
~133K SLoC