linux rm刪除文件之後,恢復就比較麻煩了,即使恢復了,文件名格式都變成一串數字了。
修改root用戶的環境變量
- vi ~/.bashrc
- 注釋第5行的別名
- #alias rm='rm -i'
- 最後一行添加如下內容
- mkdir -p ~/.trash
- alias rm=trash
- alias r=trash
- alias rl='ls ~/.trash'
- alias ur=undelfile
- undelfile()
- {
- mv -i ~/.trash/$@ ./
- }
- trash()
- {
- mv $@ ~/.trash/
- }
- cleartrash()
- {
- read -p "clear sure?[n]" confirm
- [ $confirm == 'y' ] || [ $confirm == 'Y' ] && /bin/rm -rf ~/.trash/*
- }
重新加載環境變量
- source ~/.bashrc
使用命令ll -a查看目錄,發現多了目錄.trash,這個目錄是用來存在刪除的文件
drwxr-xr-x. 2 root root 4096 Jun 4 11:31 .trash
刪除一個文件
[root@localhost ~]# rm percona-xtrabackup_2.2.3.orig.tar.gz
查看目錄,發現刪除的文件在回收站目錄
[root@localhost ~]# ll .trash/
total 33780
-rw-r–r–. 1 root root 34584359 Jun 2 09:39 percona-xtrabackup_2.2.3.orig.tar.gz
如果需要清空回收站文件使用以下命令
[root@localhost ~]# cleartrash
clear sure?[n]y
再次查看,發現空了。
[root@localhost ~]# ll .trash/
total 0
雖然rm用別名定義了,但是可以是用絕對路徑刪除文件 比如/bin/rm 1.txt
它是不會保存到.trash目錄的。
如果需要定義自動清理7天刪除的文件
可以寫一個腳本
如果Linux除了root用戶,還有其他用戶需要登陸服務器,也想他們使用回收站機制
可以修改系統環境變量
- vi /etc/profile
- 最後一行添加
- mkdir -p ~/.trash
- alias rm=trash
- alias r=trash
- alias rl='ls ~/.trash'
- alias ur=undelfile
- undelfile()
- {
- mv -i ~/.trash/$@ ./
- }
- trash()
- {
- mv $@ ~/.trash/
- }
- cleartrash()
- {
- read -p "clear sure?[n]" confirm
- [ $confirm == 'y' ] || [ $confirm == 'Y' ] && /bin/rm -rf ~/.trash/*
- }
重新加載環境變量
source /etc/profile
創建普通用戶測試
useradd a
設置密碼
passwd a
登陸Linux
查看目錄,發現會創建.trash目錄
[a@localhost ~]$ ll -a
total 24
drwx——. 3 a a 4096 Jun 4 11:45 .
drwxr-xr-x. 5 root root 4096 Jun 4 11:44 ..
-rw-r–r–. 1 a a 18 Oct 16 2014 .bash_logout
-rw-r–r–. 1 a a 176 Oct 16 2014 .bash_profile
-rw-r–r–. 1 a a 124 Oct 16 2014 .bashrc
drwxrwxr-x. 2 a a 4096 Jun 4 11:45 .trash
創建一個空文件
[a@localhost ~]$ touch 1.txt
刪除文件
[a@localhost ~]$ rm 1.txt
查看回收站目錄,發現多了一個文件
[a@localhost ~]$ ll .trash/
total 0
-rw-rw-r–. 1 a a 0 Jun 4 11:45 1.txt
如果對.trash目錄位置覺得不爽,可以修改環境變量,改成其他位置,注意保證目錄可寫。