我怎样才能做到这一点:
我有一个文件,eval.txt
保存到一个变量,那我要重命名timestamp_eval.txt
filetosend=/home/cft/eval.txt
filename=$(echo $filetosend | cut -d '/' -f4) //to get only the name
DATE=$(date +%Y%m%d)
filename=${DATE}_${filename} //add timestamp to name
我怎么可以重命名$filetosend
?
我发现这个解决方案:
DATE=(date +%Y%m%d)
mydir=$(echo $(dirname $a))
myfile=$(echo $(basename $a))
myfile=${DATE}_${myfile}
filetosend=$mydir/$myfile
cp $a $filetosend
最简单的方法是做:
mv /home/cft/eval.txt /home/cft/$(date "+%Y%m%d")_eval.txt
试着这样做,如果你真的需要一个变量:
filetosend=/home/cft/eval.txt
cd "${filetosend%/*}"
filename="${filetosend##*/}"
DATE=$(date "+%Y%m%d")
filename="${DATE}_$filename"
mv "$filetosend" "$filename"
如果你不使用rename
真的需要一个变量:
rename "s|[^/]+$|$(date +%Y%m%d)_$&|" /home/cft/eval.txt
或分解的多行:
cd /home/cft/
rename "s/.*/$(date "+%Y%m%d")_$&/" eval.txt
rename "s|[^/]+$|$(date "+%Y%m%d")_$&|"
阅读this post知道,如果你有你的系统+额外的解释就不错了rename
。
使用mv命令。 “MV”的简称,“移动”。
mv $filetosend $filename