实现Linux系统的回收站
生活随笔
收集整理的這篇文章主要介紹了
实现Linux系统的回收站
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天偶然看到一個有意思的shell腳本,用腳本實現Linux系統下的回收站,推薦給大家。
今天我們利用簡單的shell腳本實現Linux系統下的回收站機制。
先提供腳本代碼
[root@qll251 ~]# vim /bin/delete1 #! /bin/bash2 [ ! -d /.recycle ] && mkdir -v /.recycle && chmod 777 /.recycle34 if [ $# -eq 0 ]; then5 echo "Usage: delete file1 [file2 file3...]" && exit 66 fi78 read -p "Are you sure you want to delete it? [Y/N]: " action9 case $action in10 y) ;;11 Y) ;;12 *) exit13 esac1415 for file in $@; do16 now=`date +%Y-%m-%d-%H:%M:%S`17 newfile=`basename $file`18 mv $file /.recycle/$newfile.$now && echo "$file is deleted!"19 done1、腳本解釋
1)在/bin目錄下創建腳本文件delete(方便系統用戶直接調用delete命令)
2)首先判斷回收站文件夾是否創建;如未創建,則創建/.recyscle;同時設置權限777
[?!?-d?/.recycle?]?&&?mkdir?-v?/.recycle?&&?chmod?777?/.recycle3)判斷輸入的文件個數是否為0;如果返回為真,則打印幫助信息,同時退出該腳本
if [ $# -eq 0 ]; thenecho "Usage: delete file1 [file2 file3...]" && exit 6 fi4)設置用戶交互,這里類似Windows的彈窗提醒
(將用戶的輸入,放入action變量)
read -p "Are you sure you want to delete it? [Y/N]: " action5)理解為:若用戶回答yes,繼續執行腳本;否則直接退出程序
case $action iny) ;;Y) ;;*) exit esac6) 將目標文件根據當前時間重命名,同時移動到/.recycle
命令解釋:
$@:傳給腳本的所有參數(這里表示所有待刪除的文件)
basename:去掉路徑信息,返回純粹的文件名
2、設置腳本可執行權限
[root@qll251 ~]# chmod +x /bin/delete3、定時清空回收站
執行crontab -e,設置每周執行清空回收站動作
0?0?*?*?0?rm?-rf?/.recycle4、進行測試
如果delete命令用著不習慣,我們也可以給rm配置別名。將rm命令替換為delete
以下是具體實現方法:
編輯~/.bashrc文件,增加一行
alias rm='sh /bin/delete'執行source ~/.bashrc使替換立即生效
掃碼或長按關注
回復「?籃球的大肚子」進入技術群聊
總結
以上是生活随笔為你收集整理的实现Linux系统的回收站的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python进阶路线 知乎_Python
- 下一篇: linux 其他常用命令