这里有两个问题。
1. 以字符串形式获取日期
这很容易。只需使用date
带有+
选项的命令。我们可以使用反引号来捕获变量中的值。
$ DATE=`date +%d-%m-%y`
您可以使用日期手册页%
中详述的不同选项来更改日期格式。
2. 将文件拆分为名称和扩展名。
这有点棘手。如果我们认为它们只是.
文件名中的一个,我们可以将cut
其.
用作分隔符。
$ NAME=`echo $FILE | cut -d. -f1
$ EXT=`echo $FILE | cut -d. -f2`
但是,这不适.
用于文件名中的多个。如果我们正在使用bash
- 你可能是 - 我们可以使用一些bash 魔法,让我们在进行变量扩展时匹配模式:
$ 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