步骤:
1、在~/目录下新建隐藏脚本文件.rm_redefine
2、修改文件属性为可执行:chmod +x .rm_redefine
3、编写脚本内容.rm_redefine:
#!/bin/csh -f
#add 'alias rm '~/.rm_redefine' ' to ~/.cshrc
#add 'alias cleardt '~/.rm_redefine -cleardt'' to ~/.cshrc
set dtpth=$PWD
set dtpth=`echo $dtpth | sed 's/\(\/[^\/]*\/[^\/]*\/[^\/]*\)\/.*/\1/g'` #get 3 level dir
set dtpth="$dtpth/.dt"
set tmpdir=`date -u +%Y%m%d_%H_%M_%S`
set cleardt="NO"
set par=""
set delfiles=""
foreach tmpvar ($*)
if ( "$tmpvar" =~ '-cleardt' ) then #if parameter is -cleardt,will do cleardt
set cleardt="YES"
else if ( "$tmpvar" =~ -* ) then #if parameter has -,will ignore this parameter
set par="$par $tmpvar"
else
set delfiles="$delfiles $tmpvar"
endif
end
if ( "$cleardt" =~ "YES" ) then
echo "cleardt"
\rm -rf $dtpth/*
else
if ( ! -d $dtpth ) mkdir $dtpth
if ( ! -d $dtpth/$tmpdir ) mkdir $dtpth/$tmpdir
mv $delfiles $dtpth/$tmpdir/
echo "files moved to $dtpth/$tmpdir"
endif
4、在.cshrc中加入两行:
alias rm '~/.rm_redefine'
alias cleardt '~/.rm_redefine -cleardt'
重新source一下.cshrc就可以用rm删除文件了:
rm aa bb cc dd e* ff*
**附:**加bash shell脚本
#!/bin/bash
#add 'alias rm '~/.rm_redefine' ' to ~/.cshrc
#add 'alias cleardt '~/.rm_redefine -cleardt'' to ~/.cshrc
dtpth=$PWD
dtpth=`echo $dtpth | sed 's/\(\/[^\/]*\/[^\/]*\)\/.*/\1/g'` #get 3 level dir
dtpth="$dtpth/.dt"
tmpdir=`date -u +%Y%m%d_%H_%M_%S`
cleardt="NO"
par=""
delfiles=""
for tmpvar in $*
do
if [ $tmpvar == '-cleardt' ] #if parameter is -cleardt,will do cleardt
then
cleardt="YES"
elif [ ${tmpvar:0:1} == '-' ] #if parameter has -,will ignore this parameter
then
par="$par $tmpvar"
else
delfiles="$delfiles $tmpvar"
fi
done
if [ $cleardt == "YES" ]
then
echo "cleardt"
\rm -rf $dtpth/*
else
if [ ! -d $dtpth ]
then
mkdir $dtpth
fi
if [ ! -d $dtpth/$tmpdir ]
then
mkdir $dtpth/$tmpdir
fi
mv $delfiles $dtpth/$tmpdir/
echo "files moved to $dtpth/$tmpdir"
fi
(如果帮助到你,点赞支持一下,3Q!)