4 releases
Uses new Rust 2024
| 0.1.3 | Oct 31, 2025 |
|---|---|
| 0.1.2 | Aug 22, 2025 |
| 0.1.1 | Jul 7, 2025 |
| 0.1.0 | Jul 6, 2025 |
#798 in Filesystem
230KB
2.5K
SLoC
file_clipper
file_clipper is a command-line utility written in Rust that provides intuitive and efficient file management capabilities, mimicking the familiar "copy," "cut," and "paste" operations found in graphical user interfaces. It also includes features for managing a clipboard and viewing operation history, with an interactive terminal user interface (TUI) for enhanced usability.
Features
- Copy Files: Copy one or more files to a temporary clipboard.
clp copy <path>...- Aliases:
cp,c,y
- Cut/Move Files: Move one or more files to a temporary clipboard.
clp cut <path>...- Aliases:
mv,x,d
- Link Files: Copy one or more files as symbolic links.
clp link <path>...- Aliases:
ln,s
- Paste Files: Paste files from the clipboard to a specified destination.
clp paste [destination_path]- Aliases:
p,v - If
destination_pathis omitted, files are pasted into the current directory.
- List Clipboard: View the contents of the current clipboard.
clp list- Alias:
l
- View History: Browse a history of all copy/cut/paste operations.
clp history- Alias:
h
- Clear: Clear the clipboard and history.
clp clear
- Interactive TUI: The
listandhistorycommands launch an interactive terminal interface, allowing you to select specific files for pasting and manage entries with ease. - Glob Pattern Support: Supports glob patterns for selecting multiple files (e.g.,
*.txt,src/**/*.rs).
Clipboard and History Mechanics
When files are cut or copied, they are placed into a temporary clipboard. Upon a successful paste operation, these files are automatically removed from the clipboard and recorded in the history, providing a persistent log of all file operations.
Installation
To install file_clipper, you need to have Rust and Cargo installed on your system.
cargo install file_clipper
Usage
Here are some basic examples of how to use clp:
# Copy a single file
clp copy my_document.txt
# Copy multiple files using a glob pattern
clp cp 'images/*.png'
# Cut a directory
clp cut my_folder/
# Copy a file as a symlink
clp ln .dotfile
# Paste files to the current directory
clp paste
# Paste files to a specific destination
clp p /home/user/documents/
# List current clipboard contents (launches TUI)
clp list
# View operation history (launches TUI)
clp history
# Remove all clipboard and history entries
clp clear
TUI Interaction

When the TUI is launched (e.g., with clp list or clp history):
- Navigation: Use
jork(or arrow keys) to move up and down. UseCtrl+dandCtrl+uto scroll half a page, andCtrl+fandCtrl+bto scroll a full page. Pressgto go to the top andGto go to the bottom. - Selection: Press
spaceto select/unselect individual entries. Pressato select/unselect all entries. - Actions:
porEnter: Paste the selected filesxord: Remove the selected entry from the clipboard (only available in clipboard mode).qorCtrl+c: Exit the TUI.
Uninstalling
file_clipper stores record files at $HOME/.local/state/file_clipper. You should run clp clear prior to uninstalling to remove these files.
After clearing the records, you can uninstall the application using Cargo:
cargo uninstall file_clipper
Contributing
Contributions are welcome! Please feel free to open issues or submit pull requests.
License
This project is licensed under the MIT License.
Dependencies
~17–31MB
~440K SLoC