Linux 屏蔽 rm 命令

Posted by Oscaner on December 10, 2021

总是在一些沙雕群里能看到有人说要 sudo rm -rf / 然后跑路。

虽然这只是一句玩笑话,但也实实在在说明一个问题,每个开发者总会有思路不清晰的时候,有时候手快就真的 sudo rm 了呢。

那么,是不是可以把 rm 命令屏蔽,替换为类似回收站的功能呢?

于是我去研究了一下。下面就是我的思路。

  1. Linux

    Trash-Cli : Command line interface for Trash in Linux

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
     # Ubuntu
     $ sudo apt install trash-cli
     # RHEL/CentOS
     $ sudo yum install trash-cli
     # Fedora
     $ sudo dnf install trash-cli
     # Arch
     $ sudo pacman -S trash-cli
     # openSUSE
     $ sudo zypper in trash-cli
     # or use pip
     $ sudo pip install trash-cli
     # Set alias.
     $ echo 'alias rm=trash-put' >> ~/.bashrc
     $ source ~/.bashrc
    

    使用 aliasrm 替换为 trash-put 命令。

  2. macOS

    sindresorhus/macos-trash

    1
    2
    3
    4
    
     $ brew install macos-trash
     # Set alias
     $ echo 'alias rm=trash' >> ~/.bashrc
     $ source ~/.bashrc
    

    使用 aliasrm 替换为 trash 命令。

  3. Windows

    Hummmmm, windows 应该没有这个困扰。(确信脸

为了防止污染系统根的 bashrc,所以只写在了 Home 下的 ~/.bashrc 里。

如果想要屏蔽系统根的 rm,请写到 /etc/bashrc

此时如果你想真正删除一个文件,可以写一个 realrm 命令去使用。

1
2
> echo 'alias realrm="/bin/rm $@"' >> ~/.bashrc
> source ~/.bashrc

本文由 Oscaner 创作, 采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外, 均为本站原创或翻译, 转载前请务必署名