2021-05-12 14:32:11
Linux下建立類似Windows的回收站
Linux人都知道rm、rm -rf 的厲害,為了不小心刪除問題,我做了一些小改變,適合Linux下有windows那樣的回收站,一旦刪除還可以找回被誤刪除的檔案。如下操作。
我所在的作業系統的環境
root@Ubuntu:~/test# cat /etc/issue
Ubuntu 14.04.2 LTS n l
root@ubuntu:~/test# uname -a
Linux ubuntu 3.16.0-30-generic #40~14.04.1-Ubuntu SMP Thu Jan 15 17:43:14 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
快速執行
mkdir -p ~/.Trash
cat >>~/.bashrc<<EOF
#add by caimengzhi at $(date +%F) for Linux trash start
alias rm=trash
alias rl='ls ~/.Trash'
alias ur=undelfile
undelfile()
{
mv -i ~/.Trash/$@ ./
}
trash()
{
mv $@ ~/.Trash/
}
cleartrash()
{
read -p "Clear trash?[n]" confirm
[ $confirm == 'y' ] || [ $confirm == 'Y' ] && /usr/bin/rm -rf ~/.Trash/*
}
#add by caimengzhi at $(date +%F) for Linux trash end
EOF
source ~/.bashrc
說明:
1. ~/.Trash就是以後被刪除的檔案和資料夾移動到的地方,也就是回收站
2. $confirm 是實現脫意思,也就是最後在檔案中就是$confirm。其中$@一樣
3. 上面的作用,說白了就是命令rm 的重新命名。
使用語法:
rm(刪除),ur(復原),rl(列出回收站),cleartrash(清空回收站)命令了。
#刪除一個資料夾和檔案都會被移動到回收站中。
$rm filedirctory
#刪除一個檔案
$rm file.txt
#復原對file.txt的刪除
$ur file.txt
#復原filedirctory資料夾
$ur filedirctory
#列出回收站
$rl
#清空回收站
cleartrash
-------------------------------------------------------------------------------------------
具體操作過程如下:
root@ubuntu:~/test# echo "1">1.txt
root@ubuntu:~/test# echo "2">2.txt
root@ubuntu:~/test# mkdir 123
root@ubuntu:~/test# ll
total 20
drwxr-xr-x 3 root root 4096 Jan 16 14:07 ./
drwx------ 6 root root 4096 Jan 16 14:05 ../
drwxr-xr-x 2 root root 4096 Jan 16 14:07 123/
-rw-r--r-- 1 root root 2 Jan 16 14:07 1.txt
-rw-r--r-- 1 root root 2 Jan 16 14:07 2.txt
root@ubuntu:~/test# mkdir -p ~/.Trash
root@ubuntu:~/test# ls ~/.Trash/
1.刪除檔案
root@ubuntu:~/test# ll
total 20
drwxr-xr-x 3 root root 4096 Jan 16 14:07 ./
drwx------ 6 root root 4096 Jan 16 14:05 ../
drwxr-xr-x 2 root root 4096 Jan 16 14:07 123/
-rw-r--r-- 1 root root 2 Jan 16 14:07 1.txt
-rw-r--r-- 1 root root 2 Jan 16 14:07 2.txt
root@ubuntu:~/test# rm 1.txt #刪除檔案
root@ubuntu:~/test# ll
total 16
drwxr-xr-x 3 root root 4096 Jan 16 14:09 ./
drwx------ 6 root root 4096 Jan 16 14:05 ../
drwxr-xr-x 2 root root 4096 Jan 16 14:07 123/
-rw-r--r-- 1 root root 2 Jan 16 14:07 2.txt
2. 復原刪除檔案
root@ubuntu:~/test# rl
1.txt
root@ubuntu:~/test# ls ~/.Trash/
1.txt
root@ubuntu:~/test# ur 1.txt
root@ubuntu:~/test# ls ~/.Trash/
root@ubuntu:~/test# ls
123 1.txt 2.txt
root@ubuntu:~/test# cat 1.txt
1
3. 刪除資料夾
root@ubuntu:~/test#
root@ubuntu:~/test# ls
123 1.txt 2.txt
root@ubuntu:~/test# rm 123 #刪除檔案
root@ubuntu:~/test# rl
123
root@ubuntu:~/test# ls ~/.Trash/ #刪除的資料夾已經跑到回收站中了
123
root@ubuntu:~/test# ls
1.txt 2.txt
4. 復原刪除資料夾
root@ubuntu:~/test# rl
123
root@ubuntu:~/test# ls ~/.Trash/
123
root@ubuntu:~/test# ur 123
root@ubuntu:~/test# rl
root@ubuntu:~/test# ls
123 1.txt 2.txt
5. 清空回收站
root@ubuntu:~/test# ls
123 1.txt 2.txt
root@ubuntu:~/test# rm *
root@ubuntu:~/test# ls
root@ubuntu:~/test# rl
123 1.txt 2.txt
root@ubuntu:~/test# cleartrash
Clear trash?[n]y
root@ubuntu:~/test# ls
root@ubuntu:~/test# rl
6. 此時若是恢復的時候沒有加指定的引數問題
此時就會吧垃圾回收站移動到當前資料夾內,且更名為.Trash
root@ubuntu:~/test# ur
root@ubuntu:~/test# ls
root@ubuntu:~/test# rl
ls: cannot access /root/.Trash: No such file or directory
root@ubuntu:~/test# ll
total 12
drwxr-xr-x 3 root root 4096 Jan 16 14:29 ./
drwx------ 5 root root 4096 Jan 16 14:29 ../
drwxr-xr-x 3 root root 4096 Jan 16 14:29 .Trash/
root@ubuntu:~/test# cd .Trash/
root@ubuntu:~/test/.Trash# ls
1.txt 2.txt 3.txt
root@ubuntu:~/test/.Trash# cd ..
本文永久更新連結地址:http://www.linuxidc.com/Linux/2017-03/141263.htm
相關文章