Bash如何重命名保存为变量的文件?

时间:2013-03-21 11:25:45

标签: bash copy file-rename

我该怎么做:

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

3 个答案:

答案 0 :(得分:0)

如果您确实需要变量 ,请尝试执行此操作

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 +额外解释。

答案 1 :(得分:0)

最简单的方法是:

mv /home/cft/eval.txt /home/cft/$(date "+%Y%m%d")_eval.txt

答案 2 :(得分:-1)

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

mv $filetosend $filename