linux带回收站的删除命令delete,以备误删找回

在linux系统中,删除文件或者目录时,大部分同学都是rm -rf  *,这样通配很容易造成误删,或者该删除某个应用下的bin目录,结果删成了/bin,路径不一致也会造成误删,而linux系统是没有回收站的,删了就是删了,无法找回。所以删除文件操作我们应该养成加参数 -i的习惯,可一一确认是否删除,尤其是在批量删除时尤为重要,还有尽量用绝对路径。

当然即使我们按上面的操作来做,但常在河边走,哪有不湿鞋,我们可能就会有几次误删操作,如果严重的话,删库跑路也不是不可能,所以我们有必要建立一个像windows系统一样的回收站机制,删了可以找回。

删文件本质上是把这个文件mv转移到另外一个路径,正常的rm是把文件直接从磁盘上转移抹除了,而我们可以不这样做,我们可以写一个命令让它mv到一个文件夹,把这个文件夹当作回收站,误删了从这个文件夹里就可以找回,然后为了防止存储溢出,可以制定策略定时清理之前的文件。

由于这个命令是自定义的,故可以随意制定名字,我们把这个命令命名为delete,当然你也可以叫其他名字,比如shanchu,比如mmp,都可以的,只不过delete通俗易懂,人家一看就知道这个命令是删除命令。delete如何使用,以及运行的机制都在下面的shell中有所体现。

 

# 编辑命令
vim delete
#!/bin/bash
################################################################################
# SCRIPT_NAME     : delete.sh
#
# CREATE_TIME     : 2018/09/11
# AUTHOR          : Mochou_liqb
#
# DESCRIBETION    : delete some files and these files can be found in the linux's trash
# PARAMETER       : files' name
# EXAMPLE         : delete file1 file2 file3...
#
# UPDATE_RECORD   : no now
#
# DATE      OPERATION       CZR         DESCRIBETION
# ________  _____________   ________    __________________________________
#
# 2018/09/11  UPDATE Mochou_liqb
################################################################################
## 建立回收站机制,删除文件时把文件转移到.trash文件夹中,以备误删找回
if [ ! -d ~/.trash ]; then
	mkdir -p ~/.trash
fi

if [ $# -eq 0 ]; then
	#提示delete的用法
	echo "Usage:delete file1 [file2 file3...] "
else
	echo "You will delete these files:"
	echo $@
	
	#要求用户确认是否删除这些文件,回答n或者N放弃删除,其他字符表示确认
	echo -n "Are you sure to do this?[Y/N]:"
	read reply
	
	if [ "${reply}" != "n" ] && [ "${reply}" != "N" ]; then
		for file in $@
		do
			#判断文件或者目录是否存在
			if [ -f "${file}" ] || [ -d "${file}" ]; then
				mv -b "${file}" ~/.trash/
			else
				echo "${file}: No such file or directory"
			fi
		done
	else
		echo "No files removed"
	fi
fi

编辑保存完毕后,把这个文件转移到/bin目录下,就可以在任意一个路径下使用delete命令了,大家可以自行测试该命令

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神芷迦蓝寺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值