圆月山庄资源网 Design By www.vgjia.com
众所周知,linux是没有回收站的,一些人很害怕删错东西(有经验的linux管理员极少范这错误),个人不建议回收站,而应该是培养个人的安全意识。有点小跑题。
接着回来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
我们来说下这个脚本的实现思路
将原本的rm命令用我们这个带有回收站机制的myrm脚本代替(alias别名),脚本将要删除的文件移动到了home下个人目录中以.deleted-files 命名的隐藏文件夹。
接着我们看看这个脚本是怎么实现的
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 选项的话,则不进回收站,调用原本的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循环顺序处理参数
newname="$mydir/$(date "+%S.%M.%H.%d.%m").$(basename "$arg")" 回收站里文件命名.
标签:
linux,回收站
圆月山庄资源网 Design By www.vgjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
圆月山庄资源网 Design By www.vgjia.com
暂无评论...
更新日志
2024年09月20日
2024年09月20日
- 魏新雨《为你祈祷+新歌精逊2CD[WAV]
- 影心、明萨拉你选哪个?国外美女COS《博德3》
- 澳洲女子骑车跌入“自杀树”丛 疼痛持续9个月崩溃
- 育碧公布2024“她创力”计划:为女性游戏人提供辅导
- 刘美君.2017-千色·30总选3CD【环球】【WAV+CUE】
- 群星.2022-星河长明电视原声带【乐有奇思】【FLAC分轨】
- 陈淑桦.1995-淑桦盛开Forever【滚石】【WAV+CUE】
- 《再来一张》评测:出师成败皆系“赌”
- 《银河汉堡店》测评:我是银河走菜王!
- 《末日地带2》评测:酣畅淋漓的“和面”之旅
- 萧煌奇《没事的》[320K/MP3][96.22MB]
- 萧煌奇《没事的》[FLAC/分轨][263.38MB]
- 群星《音你而来 第6期》[320K/MP3][90.61MB]
- 交错战线爬塔攻略一览
- 战锤40K星际战士2全近战武器使用教学|近战武器连招表