22 releases
0.2.21 | Dec 16, 2024 |
---|---|
0.2.20 | Dec 8, 2024 |
0.2.17 | Nov 30, 2024 |
0.1.9 | Nov 18, 2024 |
#139 in Command line utilities
1,664 downloads per month
185KB
1.5K
SLoC

roxide
roxide
is a lightweight, high-performance alternative to the traditional rm
command, designed with an emphasis on speed and data preservation. Unlike standard rm, which permanently deletes files, roxide safely moves them to a designated "trash
" directory. This approach enables efficient and fast file removal without risking unintended data loss.
Getting started
roxide file.txt
: files will moved totrash dir
. ie, $HOME/.local/share/Trash/files/roxide revert
: restores perviously removed file/directory to its pervious pathroxide -r | --recursive
: Remove directories and their contents recursivelyroxide -f | --force
: Remove without moving to trash directoryroxide -d | --dir
: Removes empty directoriesroxide -v | --verbose
: will print the file name and its out pathroxide some/dir/ -p .pdf
: will remove files matching the pattern from some/dirroxide some/dir/ -rp .pdf
: will recursively remove files matching the pattern from some/dirroxide some/dir/ -rp .pdf -l
: will list files, like dry runroxide some/* -i never
: will never promptroxide some/* -i once
: Prompt once before removing more than three files or when removing recursivlyroxide some/* -i always
: Prompt before every removalroxide some/* -p .pdf -i always
: Prompt before every removalsudo roxide
: will delete files/directories permanently
Warning
- It wont warn about write protected contents (wip)
- It is not possible to bring back files removed using patterns with
revert
flag but you can still access it from Trash dir
config file $HOME
/.config/roxide/config.toml
[settings]
check_sha256 = true # checks the hash of given file and the file in trash directory, permanently deletes file if hash matches.
Installation
Build
git clone https://github.com/abhi-xyz/roxide.git --depth=1
cd roxide
cargo build --release
cp target/release/roxide /usr/local/bin/
cargo
cargo install roxide
Nixos
Add roxide
as a flake input: In your flake.nix file, add the roxide input pointing to its GitHub repository.
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs";
roxide = {
url = "github:abhi-xyz/roxide";
inputs.nixpkgs.follows = "nixpkgs"; # Follows the nixpkgs input
};
};
outputs = { self, roxide, nixpkgs, ... }@inputs:
{
# Your NixOS configuration or other settings
};
}
Include roxide in NixOS configuration: In the outputs section, set up nixosConfigurations and add roxide as a module to enable it within your system configuration.
{
outputs = { self, roxide, nixpkgs, ... }@inputs:
{
nixosConfigurations."my-nixos-host" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
./hosts/configuration.nix # Main NixOS configuration file
roxide.nixosModules.roxide # Enable the "roxide" module from the flake
];
};
};
}
Activate "roxide" in configuration.nix: Within configuration.nix, enable the "roxide" program:
{
# Other configurations...
program.roxide.enable = true; # note: its program not programs
}
Apply Configuration: After updating your configuration, apply it with:
sudo nixos-rebuild switch --flake .
known bugs
- won't warn about git directory
- can't use sudo
golb pattern isn't workingpattern -flag interfering with other flagscant remove a directory which is inside a directory
Planned Features
roxide revert: Restores files from the trash directory to their original location.- roxide --gc <TIME_PERIOD>: Performs garbage collection on trashed files, automatically clearing files older than a specified period.
roxide -f: Forces deletion without moving files to the trash directory.- roxide -s: Shreds files for secure deletion.
Dependencies
~3–11MB
~117K SLoC