这里有两个问题。
1.将日期作为字符串
这很容易只需使用带有该选项的date命令。我们可以使用反引号捕获变量中的值。
$ DATE=`date +%d-%m-%y`
您可以使用date man page上详细说明的不同的%选项来更改日期格式。
2.将文件拆分成名称和扩展名。
这有点棘手。如果我们认为他们只有一个。在文件名中我们可以使用cut。作为分隔符。
$ NAME=`echo $FILE | cut -d. -f1
$ EXT=`echo $FILE | cut -d. -f2`
$ NAME=${FILE%.*}
$ EXT=${FILE#*.}
把它们放在一起我们得到:
$ FILE=somefile.txt
$ NAME=${FILE%.*}
$ EXT=${FILE#*.}
$ DATE=`date +%d-%m-%y`
$ NEWFILE=${NAME}_${DATE}.${EXT}
$ echo $NEWFILE
somefile_25-11-09.txt
如果我们不太担心可读性,我们会在一行(使用不同的日期格式)完成所有工作:
$ FILE=somefile.txt
$ FILE=${FILE%.*}_`date +%d%b%y`.${FILE#*.}
$ echo $FILE
somefile_25Nov09.txt