ripdrag + fzf强强联合:10倍效率提升的终端文件拖放工作流
【免费下载链接】ripdragDrag and Drop utilty written in Rust and GTK4项目地址: https://gitcode.com/gh_mirrors/ri/ripdrag
ripdrag 是一款使用Rust 与 GTK4开发的终端文件拖放工具,它让"把文件从终端直接拖进其他应用程序"这一看似不可能的操作变成现实。过去,终端用户想上传文件到网页、拖进邮件附件或图片编辑器,只能切换到文件管理器慢慢找。如今只需一条命令,就能在终端里生成可拖放的窗口,配合 fzf 模糊搜索器使用,文件拖放效率轻松提升 10 倍。本文将带你从零上手 ripdrag,并解锁「ripdrag + fzf」这个终极组合的完整工作流。
为什么终端用户需要"文件拖放"?
很多应用程序都只接受拖放操作,比如:
- 🖼️ 图片压缩、裁剪网站的批量上传
- 📎 邮件客户端的附件添加
- ☁️ 网盘客户端的文件上传
- 💬 聊天软件中的文件发送
终端用户遇到这些场景,往往被迫开一个文件管理器,在目录树里翻半天。而 ripdrag 的出现,正是为了解决这个痛点——在终端里直接"抓住"文件拖出去。
ripdrag 是什么?核心特性一览
ripdrag 的设计目标是成为 dragon 的现代替代品,它具备以下亮点:
| 特性 | 说明 |
|---|---|
| 🦀 现代技术栈 | 使用 Rust + GTK4 编写,内存安全、启动极快 |
| 🔄 双向拖放 | 既能把文件拖出终端,也能接收外部拖入的文件 |
| 🖼️ 图片缩略图 | 自动为图片文件生成缩略图,所见即所得 |
| 📂 多文件支持 | 一次拖入多个文件,或一键"全部拖走" |
| 🔌 管道友好 | 支持从 stdin 读取文件路径,完美适配各类 CLI 工具 |
代码结构也非常清晰:CLI 参数定义在src/main.rs,拖放核心逻辑(拖放源与拖放目标)在src/util.rs,文件对象与缩略图加载在src/file_object.rs,界面布局由src/list_view.rs与src/compact_view.rs负责。
一分钟快速安装 ripdrag
第 1 步:安装系统依赖
不同发行版的依赖略有差异:
- Ubuntu 22.04+:
sudo apt install libgtk-4-dev build-essential curl - Fedora / CentOS / RHEL:
sudo dnf install gtk4-devel cargo(以及 pango、cairo 等开发库) - Arch Linux:
sudo pacman -Sy --needed rust gtk4 base-devel
第 2 步:cargo 一键安装
安装 Rust 工具链后,执行:
cargo install ripdrag等待编译完成即可。如果你更想直接阅读源码,也可以通过git clone https://gitcode.com/gh_mirrors/ri/ripdrag获取项目。
ripdrag 基础用法:从终端拖出文件
用法非常简单,把文件路径直接传给 ripdrag:
ripdrag ~/图片/壁纸.jpg ~/文档/报告.pdf回车后终端会弹出一个列出这些文件的小窗口,用鼠标按住文件拖到任意目标应用即可完成传递。就这么简单!🎉
ripdrag + fzf 强强联合:10倍效率的秘密
单独使用 ripdrag 已经很方便,但它的真正威力在于与 fzf 模糊查找器组合。fzf 负责"快速找到文件",ripdrag 负责"把文件拖出去",两者配合天衣无缝:
ripdrag $(fzf)这一行命令做了什么?
- 🧭 fzf 在终端中弹出模糊搜索界面,你只需输入几个关键字就能精准定位文件
- 🎯 选中的文件路径通过
$(...)命令替换传给 ripdrag - 🖱️ ripdrag 生成拖放窗口,直接拖到目标应用完成操作
整个流程从"打开文件管理器 → 层层翻目录"变成"敲命令 → 打字搜索 → 拖走",10 倍效率名副其实。你可以把它封装成 shell 别名,随时调用:
alias drag="ripdrag \$(fzf)"更多实用技巧:把 ripdrag 玩出花
技巧一:stdin 管道输入路径
-I参数让 ripdrag 从标准输入读取路径,方便与其他命令串联:
find ~/图片 -name "*.png" | ripdrag -I技巧二:作为拖放目标接收文件
加上-t参数,ripdrag 窗口会变成"接收端",把外部文件拖进来:
ripdrag -t配合-k保留文件,或-x在第一次成功拖放后自动退出,可以做出"临时中转站"的效果。
技巧三:一键拖走全部文件
-a会在窗口顶部生成一个"Drag All Items"按钮,按住它就能把所有文件一次性拖出;-A则更极致——只显示文件数量,整个窗口就是一个拖拽手柄,适合批量场景。
技巧四:拖完自动退出
-x参数让 ripdrag 在第一次成功拖放后立刻退出,不占用任何资源,配合ripdrag -x $(fzf)体验极佳。
ripdrag 常用参数速查表
| 参数 | 作用 |
|---|---|
-t, --target | 作为拖放目标,接收拖入的文件 |
-k, --keep | 配合-t,保留拖入的文件 |
-x, --and-exit | 首次拖放成功后自动退出 |
-i, --icons-only | 只显示图标,不显示文件名 |
-s, --icon-size | 设置图标与缩略图大小(默认 32) |
-I, --from-stdin | 从标准输入读取文件路径 |
-a, --all | 显示"拖走全部"按钮 |
-A, --all-compact | 紧凑模式,整窗拖拽 |
-b, --basename | 始终只显示文件名(不含路径) |
常见问题 FAQ
Q:ripdrag 支持 Windows / macOS 吗?A:项目以 Linux 桌面为主要目标(GTK4),macOS 可通过 Homebrew 安装依赖后编译,Windows 支持仍在路上。
Q:拖放某些文件没有缩略图?A:ripdrag 会自动为图片生成缩略图(GIF 除外),可用-d关闭缩略图加载以提升性能。
Q:fzf 还没装?A:fzf 是独立工具,可通过各发行版包管理器安装,例如sudo apt install fzf。
结语
ripdrag 用不到 1MB 的体积解决了终端用户的百年痛点,与 fzf 的组合更是把"终端文件拖放"这件事做到了极致。无论是日常上传附件、批量整理图片,还是配合脚本打造自动化工作流,它都能成为你的得力助手。赶紧cargo install ripdrag试试,从此告别文件管理器!🚀
【免费下载链接】ripdragDrag and Drop utilty written in Rust and GTK4项目地址: https://gitcode.com/gh_mirrors/ri/ripdrag
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考