打造Linux命令行下的“回收站”
来源:互联网 发布:ai软件教学 编辑:程序博客网 时间:2024/05/23 00:41
Linux下也有回收站功能,但只在Gnome等桌面环境下面。在终端下面是用rm命令来删除文件,就是直接从硬盘上删除了。要是你一不小心删错了文件,只能采用一些极其复杂的数据恢复工具来补救,而且还不一定有效。我就有过这样的经历,一不小心删错了文件,以致几天的工作成果立马灰飞烟灭。这样的事情发生一次都太多了。我们得在错误中学会成长,为了避免悲剧再次发生,我写了一个具有回收站功能的删除脚本用来代替rm命令:
#!/bin/bash
if [ $# -eq 0 ]; then
echo 'Usage: del file ...'
exit
fi
if [ $1 = '.' -o $1 = '..' ]; then
echo "Can't delete $1"
exit
fi
for src_file in $@; do
dst_dir="$HOME/.trashbin"
src_filename=$(basename $src_file)
dst_file="$dst_dir/$src_filename"
log_file="$dst_dir/.log"
#检查源文件是否存在
if [ ! -e $src_file ]; then
echo "/"$src_file/" dosen't exit"
exit
fi
#创建目标文件夹
if [ ! -e $dst_dir ]; then
mkdir $dst_dir
fi
#选择合适的目标文件名
new_file=$dst_file
i=0
while true; do
if [ ! -e $new_file ]; then
break
fi
new_file="$dst_file.$((++i))"
done
dst_file=$new_file
#执行删除操作
mv $src_file $dst_file
#输出信息并写入日志文件
echo "$src_file -> $dst_file"
echo "[$(date +'%m-%d %H:%M')] $src_file -> $dst_file" >> $log_file
done
把以上内容保存一个可执行的脚本文件里面,如”delete”,并确保脚本所在目录被添加到PATH环境变量里面。当你要删除文件的时候,就用这个delete命令。该命令的用法和rm基本一致,支持一次删除多个文件,也支持”*”等通配符。删除的文件被保存到~/.trashbin目录里面,如果目录中已经存在相同名称的文件,就自动在新删除的文件后面加上”.1″、”.2″等以示区别。每删除一个文件,都会在~/.trashbin/.log写入一条日志信息,记录下时间和操作内容。在你要恢复被删除文件的时候,这些日志会提供很有价值的信息。
值得说明的是,这个脚本主要用于学习用途。我不保证这个脚本是完美无误的,如果有什么错误导致数据丢失,本人概不负责。
- 打造Linux命令行下的“回收站”
- linux/mac下命令行rm回收站--rmtrash
- Linux下命令行删除到回收站
- Linux下回收站的设计与实现
- Ubuntu——命令行下清除回收站
- Linux命令行删除文件到回收站
- 打造Linux下的LAMP
- linux 回收站的路径
- 在linux下建立回收站
- linux下加入回收站功能
- linux命令行下的下载工具
- linux命令行下的下载工具
- linux命令行下的fetion
- Linux命令行下的快捷键
- Linux命令行下的快捷键
- linux命令行下的快捷方式
- Linux下的解压缩命令行
- linux下的命令行词典
- 小白也玩Archlinux
- 愿好人一生平安
- 是否声明变量的两种不同结果
- 解析数据库查询中的外连接
- Rar.exe病毒及清除方法
- 打造Linux命令行下的“回收站”
- 获得dropdownlistbox类型的数据窗口的display value
- IE被劫持的一次注册代码
- oracle数据库中sql基础
- 实战WebService II: SOAP篇
- 如何使用数据窗口更新指定的表
- JAVA面试题的问题
- 如何取得下拉列表中的显示名称
- 设置数据窗口中的某字段的只读属性