Crates.io | backdown |
lib.rs | backdown |
version | 1.1.2 |
source | src |
created_at | 2020-08-21 20:22:17.057654 |
updated_at | 2024-09-10 17:24:42.698607 |
description | A smart CLI for removing thousands of duplicates on your disks |
homepage | |
repository | https://github.com/Canop/backdown |
max_upload_size | |
id | 279323 |
size | 335,304 |
Backdown helps you safely and ergonomically remove duplicate files.
Its design is based upon my observation of frequent patterns regarding build-up of duplicates with time, especially images and other media files.
Finding duplicates is easy. Cleaning the disk when there are thousands of them is the hard part. What Backdown brings is the easy way to select and remove the duplicates you don't want to keep.
A Backdown session goes through the following phases:
Analysis and first question:
Another kind of question:
Yet another one:
Yet another one:
Review and Confirm:
At this point you may also export the report as JSON, and you may decide to replace each removed file with a link to one of the kept ones.
You must have the Rust env installed: https://rustup.rs
Run
cargo install --locked backdown
You must have the Rust env installed: https://rustup.rs
Download this repository then run
cargo install --path .
Unless you're a Rust developer, I recommend you just download the precompiled binaries, as this will save a lot of space on your disk.
Binaries are made available at https://dystroy.org/backdown/download/
backdown /some/directory
backdown -i /some/directory
After the staging phase, you may decide to export a report as JSON. This doesn't prevent doing also the removals.
The JSON looks like this:
{
"dup_sets": [
{
"file_len": 1212746,
"files": {
"trav-copy/2006-05 (mai)/HPIM0530.JPG": "remove",
"trav-copy/2006-06 (juin)/HPIM0530 (another copy).JPG": "remove",
"trav-copy/2006-06 (juin)/HPIM0530 (copy).JPG": "remove",
"trav-copy/2006-06 (juin)/HPIM0530.JPG": "keep"
}
},
{
"file_len": 1980628,
"files": {
"trav-copy/2006-03 (mars)/HPIM0608.JPG": "keep",
"trav-copy/2006-05 (mai)/HPIM0608.JPG": "remove",
"trav-copy/2006-06 (juin)/HPIM0608.JPG": "keep"
}
},
{
"file_len": 1124764,
"files": {
"trav-copy/2006-05 (mai)/HPIM0529.JPG": "remove",
"trav-copy/2006-06 (juin)/HPIM0529.JPG": "keep"
}
},
{
"file_len": 1706672,
"files": {
"trav-copy/2006-05 (mai)/test.jpg": "remove",
"trav-copy/2006-06 (juin)/HPIM0598.JPG": "keep"
}
}
],
"len_to_remove": 8450302
}