1

我怎样才能做到这一点:

我有一个文件,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
4

3 回答 3

1

如果您真的需要一个变量,请尝试这样做:

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")_$&|"

笔记

阅读这篇文章,了解您的系统是否具备优势rename+ 额外说明。

于 2013-03-21T11:29:54.300 回答
0

最简单的方法是:

mv /home/cft/eval.txt /home/cft/$(date "+%Y%m%d")_eval.txt
于 2013-03-21T11:41:06.033 回答
-2

使用 mv 命令。“mv”是“move”的缩写。

mv $filetosend $filename
于 2013-03-21T11:29:55.857 回答