#rm #safe #rip #trash

app rm-improved

rip:rm 的安全且人性化的替代品

27 个版本

0.13.1 2020 年 2 月 28 日
0.12.0 2018 年 12 月 24 日
0.11.4 2017 年 1 月 31 日
0.11.2 2016 年 12 月 22 日
0.11.1 2016 年 11 月 8 日

#1711命令行工具

Download history 64/week @ 2024-03-11 30/week @ 2024-03-18 29/week @ 2024-03-25 40/week @ 2024-04-01 48/week @ 2024-04-08 39/week @ 2024-04-15 71/week @ 2024-04-22 20/week @ 2024-04-29 32/week @ 2024-05-06 33/week @ 2024-05-13 29/week @ 2024-05-20 45/week @ 2024-05-27 72/week @ 2024-06-03 56/week @ 2024-06-10 28/week @ 2024-06-17 18/week @ 2024-06-24

每月 192 次下载

GPL-3.0+

23KB
472

* rip (Rm ImProved)
[[https://crates.io/crates/rm-improved][https://img.shields.io/crates/v/rm-improved.svg]]
[[https://travis-ci.org/nivekuil/rip][https://travis-ci.org/nivekuil/rip.svg?branch=master]]

=rip= 是一个专注于安全性、易用性和性能的命令行删除工具。它优先考虑简单的界面,并且不实现 xdg-trash 规范或试图达到相同的目标。

被删除的文件会被发送到墓地(默认为=/tmp/graveyard-$USER=,请参见 [[https://github.com/nivekuil/rip#-notes][notes]] 了解如何更改此设置),并在其绝对路径下,给您一个恢复的机会。不会覆盖任何数据。如果删除了具有相同路径的文件,它们将被重命名为带编号的备份。

=rip= 是为懒惰的人准备的。如果界面的任何部分可以更直观,请提交问题或拉取请求。

** ⚰ 安装
或者获取一个二进制 [[https://github.com/nivekuil/rip/releases][发布版]](Linux x86_64,ARMv7 和 macOS),解压它,并将其移动到您的 $PATH 上
#+BEGIN_EXAMPLE
$ tar xvzf rip-*.tar.gz
$ mv rip /usr/local/bin
#+END_EXAMPLE

或者构建它
#+BEGIN_EXAMPLE
$ cargo install rm-improved
#+END_EXAMPLE

Arch Linux 用户可以从 [[https://aur.archlinux.org/packages/rm-improved/][AUR]] 安装它(感谢 @Charon77!)
#+BEGIN_EXAMPLE
$ yay -S rm-improved
#+END_EXAMPLE
** ⚰ 使用方法
#+BEGIN_EXAMPLE
用法
rip [FLAGS] [OPTIONS] [TARGET]...

FLAGS
-d, --decompose 永久删除(解除链接)整个墓地
-h, --help 打印帮助信息
-i, --inspect 在提示操作之前打印关于 TARGET 的某些信息
-s, --seance 打印当前目录下发送的文件
-V, --version 打印版本信息

OPTIONS
--graveyard <graveyard> 删除文件休息的目录
-u, --unbury <target> 撤销当前用户最后一次删除操作,或指定墓地中的某些文件。与 -s 结合以恢复由 -s 打印的所有内容。

ARGS
<TARGET>... 要删除的文件或目录
#+END_EXAMPLE
基本用法 -- 比rm简单
#+BEGIN_EXAMPLE
$ rip dir1/ file1
#+END_EXAMPLE
撤销最后一次删除
#+BEGIN_EXAMPLE
$ rip -u
将 /tmp/graveyard-jack/home/jack/file1 返回到 /home/jack/file1
#+END_EXAMPLE
在提示删除之前打印有关目标的一些信息(文件的大小和前几行,目录的总大小和前几个文件)
#+BEGIN_EXAMPLE
$ rip -i file1
dir1: 文件,包含 1337 字节
> 位置:得分后卫和前锋 ▪ 射球:右手
> 6-6,185 磅(198 厘米,83 公斤)
将 file1 发送到墓地?(y/n) y
#+END_EXAMPLE
打印从当前目录下删除的文件
#+BEGIN_EXAMPLE
$ rip -s
/tmp/graveyard-jack/home/jack/file1
/tmp/graveyard-jack/home/jack/dir1
#+END_EXAMPLE
解决名称冲突
#+BEGIN_EXAMPLE
$ touch file1
$ rip file1
$ rip -s
/tmp/graveyard-jack/home/jack/dir1
/tmp/graveyard-jack/home/jack/file1
/tmp/graveyard-jack/home/jack/file1~1
#+END_EXAMPLE
-u 选项也可以指定 graveyard 中的文件路径
#+BEGIN_EXAMPLE
$ rip -u /tmp/graveyard-jack/home/jack/file1
将 /tmp/graveyard-jack/home/jack/file1 返回到 /home/jack/file1
#+END_EXAMPLE
结合 -u 和 -s 选项,可以恢复 -s 选项所打印的所有内容
#+BEGIN_EXAMPLE
$ rip -su
将 /tmp/graveyard-jack/home/jack/dir1 恢复到 /home/jack/dir1
将 /tmp/graveyard-jack/home/jack/file1~1 恢复到 /home/jack/file1~1
#+END_EXAMPLE
** ⚰ 注意事项
- 你可能不应该将 =rm= 别名为 =rip=. 重新学习肌肉记忆很困难,但确保每个 =rm= 操作(作为不同用户、来自不同机器和应用环境)都是别名的操作会更困难。
- 如果你设置了 =\$XDG_DATA_HOME= 环境变量,=rip= 将会使用 =\$XDG_DATA_HOME/graveyard= 而不是 =/tmp/graveyard-\$USER=。
- 如果你想把 graveyard 放在其他地方(比如 =~/.local/share/Trash=),你有两个选项,按优先级顺序
1. 将 =rip= 别名为 =rip --graveyard ~/.local/share/Trash=
2. 设置环境变量 =\$GRAVEYARD= 为 =~/.local/share/Trash=。
这可以是一个好主意,因为如果 graveyard 挂载在内存文件系统上(比如 Arch Linux 中的 /tmp),删除大文件会迅速填满你的 RAM。尽管使用 SSD 时延迟应该是最小的,但跨文件系统移动文件也会非常慢。
- 通常,删除后跟 =--unbury= 应该是幂等的。
- 删除日志保存在 graveyard 顶层的 =.record= 文件中。

依赖项

~4–5.5MB
~96K SLoC