一招教你如果避免rm /*误操作的坑

一招教你如果避免rm /*误操作的坑

使用linux经常都会需要删除某个文件或者文件夹,但是如果不小心将路径写错,就会导致格盘的悲剧。 如何避免这种事情发生呢?写一个脚本并并设置别名代替默认rm的功能: 首先,新建一个rm.sh文件(名称随意,位置可以自己修改)

$ cd /usr/src
$ sudo touch rm.sh
$ sudo vim ./rm.sh

然后填充内容

#!/bin/sh

# 这里指定回收站的位置,我的系统是manjaro回收站就在这里,你也可以随便制定回收站的位置比如~/.trash
# 制定了回收站的位置后记得先创建文件夹,否则需要在一个会儿设置别名的
# 地方配置一行mkdir -p ~/.trash
trashpath="/home/guqing/.local/share/Trash/files"

# 恢复制定文件
undelfile() {
    mv -i $trashpath/$@ ./
}

# 移动文件到回收站
trash() {
    mv $@ $trashpath/
}

# 清空回收站
cleartrash() {
    read -p "clear sure?[n]" confirm
    [ $confirm == 'y' ] || [ $confirm == 'Y' ] && /bin/rm -rf $trashpath/*
}

写好这个shell脚本后,制定执行权限

$ sudo chmod +x ./rm.sh

然后配置别名,由于我用的是zsh所以我修改~/.zshrc文件,如果没有更换过shell的同学可以修改~/.bashrc文件是一样的,在文件中找个地方写上如下内容,比如我添加在末尾

# 回收站
# 如果改了回收站位置并且没有新建文件夹的在这里配置:mkdir -p ./.trash,不建议还是手动新建一下
# source是引入rm.sh脚本,如果位置不是这个自行更改
source /usr/src/rm.sh

# 删除文件或文件夹
alias rm=trash

# 从回收站恢复制定文件
alias ur=undelfile

# 清空回收站
alias mcls=cleartrash

保存退出,然后source一下,让其生效

source .zshrc
# 或者
source .bashrc 

大功告成,测试删除

# 删除文件到回收站
rm ./hello.text

# 删除多级文件夹test/adc/gef
rm ./test
# Linux 

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×