日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

实现Linux系统的回收站

發布時間:2023/12/20 linux 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 实现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 done


1、腳本解釋

1)在/bin目錄下創建腳本文件delete(方便系統用戶直接調用delete命令)

2)首先判斷回收站文件夾是否創建;如未創建,則創建/.recyscle;同時設置權限777

[?!?-d?/.recycle?]?&&?mkdir?-v?/.recycle?&&?chmod?777?/.recycle

3)判斷輸入的文件個數是否為0;如果返回為真,則打印幫助信息,同時退出該腳本

if [ $# -eq 0 ]; thenecho "Usage: delete file1 [file2 file3...]" && exit 6 fi

4)設置用戶交互,這里類似Windows的彈窗提醒

(將用戶的輸入,放入action變量)

read -p "Are you sure you want to delete it? [Y/N]: " action

5)理解為:若用戶回答yes,繼續執行腳本;否則直接退出程序

case $action iny) ;;Y) ;;*) exit esac

6) 將目標文件根據當前時間重命名,同時移動到/.recycle

命令解釋:

  • $@:傳給腳本的所有參數(這里表示所有待刪除的文件)

  • basename:去掉路徑信息,返回純粹的文件名

  • for file in $@; donow=`date +%Y-%m-%d-%H:%M:%S`newfile=`basename $file`mv $file /.recycle/$newfile.$now && echo "$file is deleted!" done


    2、設置腳本可執行權限

    [root@qll251 ~]# chmod +x /bin/delete

    3、定時清空回收站

    執行crontab -e,設置每周執行清空回收站動作

    0?0?*?*?0?rm?-rf?/.recycle

    4、進行測試

    如果delete命令用著不習慣,我們也可以給rm配置別名。將rm命令替換為delete

    以下是具體實現方法:

    編輯~/.bashrc文件,增加一行

    alias rm='sh /bin/delete'

    執行source ~/.bashrc使替換立即生效


    掃碼或長按關注

    回復「?籃球的大肚子」進入技術群聊

    總結

    以上是生活随笔為你收集整理的实现Linux系统的回收站的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。