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 在 命令行工具
每月 192 次下载
23KB
472 行
[[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