一. 功能簡介
1. 將刪除的文件放在回收站中
2. 恢復刪除的文件
3. 實現linux rm命令的功能, 使用起來幾乎和linux 系統自帶的rm ,命令完全一樣
4. 新增功能: rm -l, rm -e, rm -c
5. 該腳本每次在運行時候會檢查$HOME/.trash 目錄下文件大小之和, 若
超過最大容量, 腳本會自動將日志文件中所記錄文件中的前一半文件從回
收站中清除,所以建議刪除大文件(相對于回收站最大容量而言)直接用
命令/bin/rm 而不要用 rm.
二. 使用方法:
1. 將trash文件放到 $HOME/bin/
2. 在$HOME/.bashrc 文件中加入alias rm=”$HOME/bin/trash”, 重新登陸終端或執行bash命令。
3. 執行命令rm -e 配置回收站的最大容量,單位K
4. 回收站的默認目錄為:$HOME/.trash, 默認配置文件為:$HOME/.trash/trash.conf
默認log文件為:$HOME/.trash/trash.log
5. 怎樣恢復文件:
在linux 終端中輸入rm -l, 然后 在RowNumber: 后面鍵入要刪除文件所在的行標識:988 鍵入y/Y 然后按回車鍵 恢復成功.
如果想只查看刪除列表, 則鍵入rm -l 后直接按回車鍵或者鍵入Q/q
6. 更詳細的參數介紹請鍵入:rm --help
三. 注意事項
1. 想要手動清空$HOME/.trash目錄需要用/bin/rm命令, 請不要嘗試用rm -r $HOME/.trash 的方法.
2. 該腳本不支持rm -r -f , rm -rfi (選項組合超過2個)格式.
3. 如果你可以你甚至可以用該腳本作為備份腳本, 假若想備份test2.txt你只需要執行rm test2.txt, 當然如果真想備份某個文件的話, 最好編寫專門的備份腳本。
代碼如下:
#!/bin/bash
#配置回收站最大的存儲空間(字節)
#maxmemory=51200 (50M)
#maxmemory=102400 (100M)
#maxmemory=512000 (500M)
#根據情況設置為50M(對于isoa服務開發來說足夠了)
maxmemory=3145728
#設置回收站所在的目錄
trash=$HOME/.trash
#設置日志文件所在的目錄
mvlog=$trash/trash.log
from1=$1
from2=$2
var_pwd=
var_father=
#回收站若不存在,則新建之
if [ ! -e $trash ];then
mkdir -p $trash
chmod 755 $trash
fi
#產生7位的隨機數
function rand()
{
a=(0 1 2 3 4 5 6 7 8 9 a b c d e A B C D E F)
for ((i=0;i<7;i++))
do
echo -n ${a[$RANDOM%${#a[*]}]}
done
}
random=$(rand)
#文件不存在時的提示信息
function file_null()
{
local file=$1
echo "rm: cannot remove '$file': No such file or directory"
}
#打印參數出錯后的提示信息
function echo_msg()
{
echo -n "rm: missing operand
Try 'rm --help' for more information.
"
}
function echo_msg2()
{
echo -n "rm: invalid option '$1'
Try 'rm --help' for more information.
"
}
#回收站管理函數
function deal()
{
local tmp=$(mktemp /tmp/tfile.XXXXXX)
local num=$(($(cat $mvlog| wc -l)/2))
新聞熱點
疑難解答