V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
tbxark
V2EX  ›  分享创造

[开源] rmtrash - macOS 上完全兼容 rm 命令的安全替代品

  •  
  •   tbxark ·
    tbxark · 33 天前 · 1755 次点击
    这是一个创建于 33 天前的主题,其中的信息可能已经有所发展或是发生改变。

    rmtrash 是 macOS 命令行工具 rm 的替代方案,用于将文件移动到废纸篓。 目前可用的 Objective-C 版本 trash 和 Swift 版本 macos-trash 分别已有 6 年和 2 年未更新,且存在一些不足:trash 未采用最新的废纸篓 API ;macos-trash 实现过于简陋,缺乏对 rm 命令标志位的支持。

    rmtrash https://github.com/TBXark/rmtrash 提供了与 Linux 和 macOS 版本 rm 命令完全兼容的标志位支持。

    使用

    rmtrash [-f | --force] {[-i | --interactive[=always]] | [-I | --interactive=once] |
       [--interactive=never]} [--one-file-system | -x] [--no-preserve-root |
       --preserve-root] [-r | -R | --recursive] [-d | --dir] [-v | --verbose] 
       FILE...
    
    rmtrash --help
    
    rmtrash --version
    

    安装

    brew install tbxark/repo/rmtrash
    

    如果你不想订阅我的 taps, 可以在 release 中下载二进制,或者直接从源码编译

    其他

    一开始交给号称能自己写完整个项目的 Windsurf 写,结果写出来了一团浆糊。最后还是得人来组织代码结构, AI 辅助提示。

    另外自己和 AI 已经找不到什么 BUG 了,欢迎测试提交 issue

    11 条回复    2024-11-28 19:51:11 +08:00
    aapeli
        1
    aapeli  
       33 天前
    brew install trash
    alias=trash
    aapeli
        2
    aapeli  
       33 天前
    用这个好久了 alias=trash
    aapeli
        3
    aapeli  
       33 天前
    @aapeli #1 alias rm=trash
    aapeli
        4
    aapeli  
       33 天前
    @aapeli #2 alias rm=trash
    aapeli
        5
    aapeli  
       33 天前
    不过楼主这个更棒,立马更换一波
    Kobayashi
        6
    Kobayashi  
       33 天前 via Android
    tbxark
        7
    tbxark  
    OP
       33 天前 via iPhone
    @Kobayashi 😲 brew search 搜不到以为没有人写了,这个不错
    tbxark
        8
    tbxark  
    OP
       33 天前 via iPhone
    @Kobayashi 我还以为是纯 shell ,原来还得依赖 python 搭那个 trash-cli ,还是选择 macOS 原生 API 吧
    tbxark
        9
    tbxark  
    OP
       33 天前 via iPhone
    @aapeli 哈哈 就是看到这个 6 年都不维护了,而且他这个移动到废纸篓是自己手撸的,在新的系统已经不太适应了。
    ychen997
        10
    ychen997  
       32 天前 via iPhone
    tbxark
        11
    tbxark  
    OP
       32 天前
    @ychen997 帖子里有提到,他整个代码里就一段有用的逻辑。直接删除,不管是文件夹还是文件。其他 rm 特性都没有实现。相当于 rm -rf 。

    https://github.com/sindresorhus/macos-trash/blob/a3831fc0f22250b102192732984bd892d7883bfb/Sources/trash/main.swift#L13
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2332 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 15:57 · PVG 23:57 · LAX 07:57 · JFK 10:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.