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

101個(gè)腳本之建立linux回收站的腳本

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

眾所周知,linux是沒(méi)有回收站的,一些人很害怕刪錯(cuò)東西(有經(jīng)驗(yàn)的linux管理員極少范這錯(cuò)誤),個(gè)人不建議回收站,而應(yīng)該是培養(yǎng)個(gè)人的安全意識(shí)。有點(diǎn)小跑題。
接著回來(lái)101個(gè)腳本之#15 Archiving Files As They're Removed 就是建立一個(gè)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

我們來(lái)說(shuō)下這個(gè)腳本的實(shí)現(xiàn)思路
將原本的rm命令用我們這個(gè)帶有回收站機(jī)制的myrm腳本代替(alias別名),腳本將要?jiǎng)h除的文件移動(dòng)到了home下個(gè)人目錄中以.deleted-files 命名的隱藏文件夾。

接著我們看看這個(gè)腳本是怎么實(shí)現(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

這一段說(shuō)明 要是命令用帶 –f 選項(xiàng)的話,則不進(jìn)回收站,調(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")" 回收站里文件命名.

相關(guān)文章

最新評(píng)論

逊克县| 花垣县| 古交市| 富源县| 瓮安县| 佛山市| 禹城市| 颍上县| 上犹县| 固始县| 土默特右旗| 灵丘县| 洱源县| 从江县| 阿拉善盟| 沙田区| 阜平县| 龙州县| 吉林市| 泊头市| 黄陵县| 尚志市| 梨树县| 即墨市| 永宁县| 浮山县| 博白县| 辽中县| 甘泉县| 沂源县| 峨眉山市| 扎兰屯市| 西昌市| 望奎县| 开原市| 白山市| 襄垣县| 依安县| 瓦房店市| 泊头市| 永和县|