欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

101個腳本之建立linux回收站的腳本

 更新時間:2016年08月13日 13:27:19   作者:hb_fukua  
眾所周知,linux是沒有回收站的,一些人很害怕刪錯東西(有經(jīng)驗的linux管理員極少范這錯誤),個人不建議回收站,而應該是培養(yǎng)個人的安全意識。有點小跑題

眾所周知,linux是沒有回收站的,一些人很害怕刪錯東西(有經(jīng)驗的linux管理員極少范這錯誤),個人不建議回收站,而應該是培養(yǎng)個人的安全意識。有點小跑題。
接著回來101個腳本之#15 Archiving Files As They're Removed 就是建立一個linux回收站的腳本

#!/bin/sh

# newrm, a replacement for the existing rm command, provides a
 # rudimentary unremove capability by creating and utilizing a new
 # directory within the user's home directory. It can handle directories
 # of content as well as individual files, and if the user specifies
 # the -f flag files are removed and NOT archived.

# Big Important Warning: You'll want a cron job or something similar to keep
 # the trash directories tamed. Otherwise nothing will ever actually
 # be deleted from the system and you'll run out of disk space!

mydir="$HOME/.deleted-files"
 realrm="/bin/rm"
 copy="/bin/cp -R"

if [ $# -eq 0 ] ; then # let 'rm' ouptut the usage error
 exec $realrm # our shell is replaced by /bin/rm
 fi

# Parse all options looking for '-f'

flags=""

while getopts "dfiPRrvW" opt
 do
 case $opt in
 f) exec $realrm "$@" ;; # exec lets us exit this script directly.
 *) flags="$flags -$opt" ;; # other flags are for 'rm', not us
 esac
 done
 shift $(($OPTIND - 1))

# Make sure that the $mydir exists

if [ ! -d $mydir ] ; then
 if [ ! -w $HOME ] ; then
 echo "$0 failed: can't create $mydir in $HOME" >&2
 exit 1
 fi
 mkdir $mydir
 chmod 700 $mydir # a little bit of privacy, please
 fi

for arg
 do
 newname="$mydir/$(date "+%S.%M.%H.%d.%m").$(basename "$arg")"
 if [ -f "$arg" ] ; then
 $copy "$arg" "$newname"
 elif [ -d "$arg" ] ; then
 $copy "$arg" "$newname"
 fi
 done

exec $realrm $flags "$@" # our shell is replaced by realrm

我們來說下這個腳本的實現(xiàn)思路
將原本的rm命令用我們這個帶有回收站機制的myrm腳本代替(alias別名),腳本將要刪除的文件移動到了home下個人目錄中以.deleted-files 命名的隱藏文件夾。

接著我們看看這個腳本是怎么實現(xiàn)的

while getopts "dfiPRrvW" opt
 do
 case $opt in
 f) exec $realrm "$@" ;; # exec lets us exit this script directly.
 *) flags="$flags -$opt" ;; # other flags are for 'rm', not us
 esac
 done

這一段說明 要是命令用帶 –f 選項的話,則不進回收站,調(diào)用原本的rm命令。

for arg
 do
 newname="$mydir/$(date "+%S.%M.%H.%d.%m").$(basename "$arg")"
 if [ -f "$arg" ] ; then
 $copy "$arg" "$newname"
 elif [ -d "$arg" ] ; then
 $copy "$arg" "$newname"
 fi
 done

用for循環(huán)順序處理參數(shù)
newname="$mydir/$(date "+%S.%M.%H.%d.%m").$(basename "$arg")" 回收站里文件命名.

相關文章

  • 在Linux上識別同樣內(nèi)容的文件詳解

    在Linux上識別同樣內(nèi)容的文件詳解

    這篇文章主要給大家介紹了關于如何在Linux上識別同樣內(nèi)容的文件的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Linux具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-06-06
  • Linux系統(tǒng)中創(chuàng)建SSH服務器別名的兩種方法

    Linux系統(tǒng)中創(chuàng)建SSH服務器別名的兩種方法

    這篇文章主要給大家介紹了關于Linux系統(tǒng)中創(chuàng)建SSH服務器別名的兩種方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Linux系統(tǒng)具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-05-05
  • Linux進程間通信--使用信號

    Linux進程間通信--使用信號

    本篇文章主要介紹了Linux進程間通信--使用信號的相關知識。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04
  • Linux下新增用戶、指定用戶組、家目錄、獲取sudo權限方式

    Linux下新增用戶、指定用戶組、家目錄、獲取sudo權限方式

    這篇文章主要介紹了Linux下新增用戶、指定用戶組、家目錄、獲取sudo權限方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Apache支持 shtml和include文件解析

    Apache支持 shtml和include文件解析

    這篇文章主要介紹了Apache支持 shtml和include文件解析的相關資料,需要的朋友可以參考下
    2015-07-07
  • Linux使用cd命令之實現(xiàn)切換目錄的完全指南

    Linux使用cd命令之實現(xiàn)切換目錄的完全指南

    這篇文章主要介紹了Linux使用cd命令之實現(xiàn)切換目錄的完全指南,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 詳解在Linux中怎么使用cron計劃任務

    詳解在Linux中怎么使用cron計劃任務

    本篇文章主要介紹了在Linux中怎么使用cron計劃任務,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • Apache配置多個站點的方法

    Apache配置多個站點的方法

    Apache配置多個站點的方法,需要的朋友可以參考下。
    2010-04-04
  • vsftpd配置虛擬用戶登錄的方法

    vsftpd配置虛擬用戶登錄的方法

    這篇文章主要介紹了vsftpd配置虛擬用戶登錄的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-12-12
  • CentOS7yum安裝PHP7.2的操作方法

    CentOS7yum安裝PHP7.2的操作方法

    下面小編就為大家分享一篇CentOS7yum安裝PHP7.2的操作方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03

最新評論