第二章:Improving On User Commands--15.将删除的文件存档
以过往的经验来看,Unix用户最常见的一个问题是无法恢复意外删除的文件和目录。键入 rm xyz 之后,一旦你按下RETURN键,那么一切都是浮云了。这个问题的一个解决方案是秘密的、自动的存档文件和目录。想象一下,这个脚本中的基本工作可以做的让用户毫无察觉。 #!/bin/sh # newrm.sh, 一个rm命令的替代品, # 通过在用户的家目录下建立并利用一个新目录,提供了一个非删除的能力 # 它可以处理目录,也可以处理独立的文件, # 如果用户提供了-f 选项,那么删除时就不会存档 # 重要警告:如果你要自动完成删除垃圾目录的工作,那么不要使用 # 该脚本,因为这意味着你事实上什么也没有删除,最终你的磁盘空间会爆满 mydir="$HOME/.deleted-files" realrm="/bin/rm" copy="/bin/cp -R" if [ $# -eq 0 ]; then # 让 'rm' 输出用法错误信息 exec $realrm #当前的shell被 /bin/rm替换掉 fi # 解析所有选项查找'-f' flags="" while getopts "dfiPRrvW" opt; do case $opt in f)exec $realrm "$@" ;; # exec 让我们直接退出这个脚本 *)flags="$flags-$opt" ;; #