linux在文件中加入日期,在Linux中,将日期附加到文件名
问题描述我想在文件名(“somefile.txt”)旁边添加日期。例如:somefile_25-11-2009.txt或somefile_25Nov2009.txt或类似的任何内容也许脚本会执行操作或在终端窗口中执行某些命令。我正在使用Linux(Ubuntu)。提前致谢。哦,我几乎忘了补充,每次要将文件保存到特定文件夹但仍保留以前的文件时,脚本或命令都应将文件名更新为新日期。因此,最终该文件夹中
问题描述
我想在文件名(“somefile.txt”)旁边添加日期。例如:somefile_25-11-2009.txt或somefile_25Nov2009.txt或类似的任何内容
也许脚本会执行操作或在终端窗口中执行某些命令。我正在使用Linux(Ubuntu)。
提前致谢。
哦,我几乎忘了补充,每次要将文件保存到特定文件夹但仍保留以前的文件时,脚本或命令都应将文件名更新为新日期。因此,最终该文件夹中将包含以下文件:filename_18Oct2009.txt,filename_9Nov2009.txt,filename_23Nov2009.txt
最佳思路
这里有两个问题。
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
次佳思路
您可以使用反引号。
$ echo myfilename-"`date +"%d-%m-%Y"`
产量:
myfilename-25-11-2009
第三种思路
cp somefile somefile_`date +%d%b%Y`
参考资料
更多推荐
所有评论(0)