# fpick **fpick** is an interactive file picker to traverse through directories tree in a terminal.
GitHub - Crates - docs.rs
![](./docs/img/screenshot1.png) **fpick** returns the selected path to standard output, so you combine it with other commands: ```sh cd "$(fpick)" cat $(fpick) ``` ## Installation ### Cargo ```sh cargo install fpick ``` This will install `fpick` binary in Rust's Path. ### Binary Alternatively, you can download the compiled binary: ```sh curl -L https://github.com/igrek51/fpick/releases/download/0.7.5/fpick -o ~/bin/fpick chmod +x ~/bin/fpick ``` ## Usage ### Traverse through directories Type `cd "$(fpick)"` to quickly change the directory interactively: - Start typing a name to filter the list of directories. - Find your subdirectory with up and down arrows. Hit `Enter` to go inside. - Repeat the steps until you are in the directory you are looking for. - Hit `Enter` again (when being focused on `.`) to exit and change the directory. ## Controls Launch the interactive file picker by running `fpick`. Navigate with keyboard: - `↑` and `↓` to move between files and directories, - `→` to enter a directory. - `←` to go up, - Type a phrase to filter the list of files - `Enter` on selected file to exit and print its path to stdout. - `Enter` on selected directory to enter inside it. - `Enter` on `.` to pick current directory. - `Esc` or `Ctrl + C` to exit. - `/` to go to root directory. - `Alt + Enter` on selected file / directory to open context menu and execute an operation: - **Open** - open directory in file manager or a file in a default application - **Show in less** - **Edit in vim** - **Edit in sudo vim** - **Delete file** - **Delete directory** - **Copy path to clipboard** - **Pick absolute path** - return absolute path to stdout. - **Pick relative path** - return relative path to stdout. ## CLI arguments See `fpick --help` for options. Usage: - `fpick [OPTIONS]` to select a file in a current directory and return its path - `fpick [OPTIONS] ` to select a file starting from a specified directory Options: - `--relative`, `--rel`, `-r` - Print selected path as relative to the starting directory - `--version` - Print version - `--help`, `-h` - Print usage ## Examples You can use it in combination with other commands, for example to print the selected file: ```sh cat $(fpick) ``` Tired of typing `ls` and `cd`, over and over again, just to find a file in a deeply nested directory tree? Use `fpick` to navigate through directories interactively: ```sh cd "$(fpick)" ``` Set alias for quick access: ```sh alias cfp='cd "$(fpick)"' ``` Move file by interactively picking the source and destination: ```sh mv "$(fpick)" "$(fpick)" ```