Linux 下回收站实现(恢复删除文件)
March 19, 2018
本文主要讲述通过shell 脚本来实现Linux系统下的类似于windows系统中的回收站的功能。 默认情况下,大多数的Linux发型版本都没有实现回收站的功能,这样就会导致当你错误的删除了系统里某个文件或者错误的执行rm –rf * 命令将某些文件删除后, 我们没有很好的办法恢复已经被误删掉的文件。
下面我们通过简单的shell 脚本函数来重新定义一个trash函数,该函数将会实现当我们执行rm命令删除文件的时候,只是将文件先移动到某个临时的目录文件里,这样就可以起到一个简单回收站功能,如果需要撤销文件删除操作,我们也可以通过重新定义的另一个函数undo,来恢复被删掉的文件,该函数会将你指定的文件从临时目录里恢复到当前目录。
下面是我们实现的shell 函数:
undo( ) # 该函数用来撤销或者恢复被删掉的文件 { mv –i ~/.tmp/$@ ./ } trash( ) # 该函数用来删除指定文件,并将其移动到临时目录~/.tmp/目录里 { mv $@ ~/.tmp/ } cleartrash() # 该函数用来删除回收站(临时目录)里的所有文件 { read -p "要删除回收站里的所有文件吗?[n]" confirm [ $confirm == 'y' ] || [ $confirm == 'Y' ] && /bin/rm -rf ~/.Trash/* }
具体的执行步骤如下:
1# 创建临时目录文件或者回收站文件
该目录用来临时存放被删除的文件,执行命令:
#mkdir –p ~/.tmp
2# 将下面的脚本添加到bash shell 的环境变量设置文件.bashrc 里, 保存退出
alias rm=trash alias ud=undo alias tl='ls ~/.tmp' undo() # 该函数用来撤销或者恢复被删掉的文件 { mv -i ~/.tmp/$@ ./ } trash() # 该函数用来删除指定文件,并将其移动到临时目录~/.tmp/目录里 { mv $@ ~/.tmp/ } cleartrash() # 该函数用来删除回收站(临时目录)里的所有文件 { read -p "要删除回收站里的所有文件吗?[n]" confirm [ $confirm == 'y' ] || [ $confirm == 'Y' ] && /bin/rm -rf ~/.Trash/* }
3# 执行 .bashrc 脚本
# source ./bashrc
现在我们可以放心的使用rm命令来删除文件了,如果需要恢复被删掉的某个文件,可以使用ud 命令进行撤销删除操作,如果需要列出回收站里的文件,那么可以使用tl 命令。当回收站里的文件确实需要删除了,可以使用cleartrash命令进行清空操作。
下面来看实例操作:
$ rm fio1.txt fio2.txt # 删除当前目录下的fio1.txt 和fio2.txt 文件 $ tl # 查看回收站里文件 $ ud fio1.txt #从回收站里恢复之前删掉的fio1.txt 文件 $ cleartrash # 清空回收站
命令输出如下:
root@devops:~/osetc# rm fio1.txt fio2.txt root@devops:~/osetc# ls root@devops:~/osetc# tl fio1.txt fio2.txt root@devops:~/osetc# ud fio1.txt root@devops:~/osetc# tl fio2.txt root@devops:~/osetc# ls fio1.txt root@devops:~/osetc# cleartrash 要删除回收站里的所有文件吗?[n]y root@devops:~/osetc#
99%的人还阅读了:
0 Comments