最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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")" 回收站里文件命名.

相關文章

最新評論

建平县| 昂仁县| 龙川县| 嘉峪关市| 元谋县| 伊川县| 岳池县| 辽源市| 阳曲县| 瓦房店市| 辽源市| 丰原市| 天峨县| 潜山县| 昌图县| 丰城市| 左权县| 黄冈市| 墨江| 荆门市| 渭源县| 河曲县| 昆明市| 屯门区| 界首市| 玉环县| 资中县| 花垣县| 武陟县| 宁阳县| 清流县| 即墨市| 上栗县| 太仆寺旗| 瑞安市| 青田县| 通化县| 沧源| 建水县| 名山县| 潜山县|