1.原因:
今天測試時不小心把家目錄裏的好多東西刪掉了,辛虧有備份,寫好的好多腳本纔沒有丟
本來定義的有別名
alias rm="mv -t /app/tmp" -t :調換 源 和 目的 的參數位置
可是在腳本里執行的rm 不支持別名,就刪錯了
2.思路:
1. 寫一個腳本,名字是 rm ,把路徑放在PATH的最前面
把 /app/tmp 當作是回收站
2. 刪除 alias rm=“rm -i”
3.過程
1. 腳本
#!/bin/bash # ------------------------------------------ # Filename: rm # Date: 2017-09-15 # Revision: # Author: 木子甘 # stdentID:16 # Description: 避免rm的巨大傷害,使刪除的東西在回收站 # ------------------------------------------ #檢查有沒有參數 f_args (){ [ $# -eq 0 ] &&{ echo "missing operand" ; return 1; } || return 0 } #檢查文件是否存在 f_arg (){ [ -e $1 ] ||{ echo "cannot remove ‘b.sh’: No such file or directory"; return 1; } } #mv f_rm (){ mv -t /app/tmp $1 } #主程序 f_args $@ [ $? -ne 0 ] &&exit 1 while [ $# -ne 0 ] ; do f_arg $1 [ $? -ne 0 ] &&{ shift; continue; } f_rm $1 [ $? -ne 0 ] &&{ shift; continue; } shift done
2. 修改PATH變量
在/etc/profile.d/newvar.sh 裏面寫上
PATH=$HOME/bin:$PATH
4.測試
1.
[root@localhost ~/bin]# vim test.sh #!/bin/bash which rm bash -x rm /app/tmp/a.sh
2.命令行測試
[root@localhost ~/bin]# which rm /root/bin/rm
成功!!!