summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-09-14 10:56:21 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-09-14 10:56:21 +0200
commit1506c7dcd6032c04c1df6f5785b6dd3dfe4511cc (patch)
treefb6d573ca8726c1b1d91ba273a284ba666cde3f6 /README.md
parentebdd7bb254a0f19f815a644d26ce232de7be0adb (diff)
downloadkrino-1506c7dcd6032c04c1df6f5785b6dd3dfe4511cc.tar.gz
krino-1506c7dcd6032c04c1df6f5785b6dd3dfe4511cc.zip
krino: duplicates are found, never deleted
A rule combining (duplicate) with a delete action is refused at load, and a file that is a duplicate under any duplicate scope its directory uses gets no delete step from any rule: the plan shows it skipped and the chain continues. A failed duplicate check blocks the delete too. Tests cover (matched), another rule's own condition, a test evaluation skipped, two scopes and a failed check, each checking every copy is still on disk.
Diffstat (limited to 'README.md')
-rw-r--r--README.md4
1 files changed, 4 insertions, 0 deletions
diff --git a/README.md b/README.md
index 4b7d4c3..34d3a78 100644
--- a/README.md
+++ b/README.md
@@ -189,6 +189,10 @@ rule content only when a private pattern list is configured with
- `(delete)` moves a file to the freedesktop.org Trash by default, not
`unlink(2)` — recoverable, by hand or with `krino undo`. `(delete
permanent)` is the explicit opt-out, and undo can never reverse it.
+- Duplicates are found, never deleted. A rule can combine `(duplicate)` with
+ `move`, never with `delete`, and no other rule can delete a file krino has
+ found to be a duplicate. Move duplicates aside, for example to `~/.dupes/`,
+ and delete them later yourself or with a tool such as jdupes.
- Every step of every run is appended to `$XDG_STATE_HOME/krino/krino.log`
(default `~/.local/state/krino/krino.log`), tab-separated and
`grep`-able.