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 に答える