我想為我的文件添加前綴(.dat
),如下所示:
CLY_BIZ_COM_PERD.dat -> 20160622CLY_BIZ_COM_PERD.dat
我已經嘗試過以下方法:
key=`date "+%Y%m%d"`
for i in $(ls /Path/*.dat); do mv ${i} "${key}${i}" ;done
但是這個指令後綴我的文件而不是前綴。我怎樣才能做到這一點?
答案1
對目前腳本的兩處變更:
(注意:我還將您的“/Path”更改為“./Path”,因為我不想創建根級 /Path 目錄。不過,同樣的原則適用。
設定一些範例檔案:
mkdir Path && cd Path
touch CLY_BIZ_COM_PERD.dat jeff.dat a.dat c\ d.dat
cd ..
這是一次演練:
for f in ./Path/*.dat
do
printf "mv '%s' '%s'\n" "$f" "$(dirname "$f")/${key}$(basename "$f")"
done
試運行的輸出:
mv './Path/a.dat' './Path/20160622a.dat'
mv './Path/c d.dat' './Path/20160622c d.dat'
mv './Path/CLY_BIZ_COM_PERD.dat' './Path/20160622CLY_BIZ_COM_PERD.dat'
mv './Path/jeff.dat' './Path/20160622jeff.dat'
一旦你滿意了,就真正去做:
for f in ./Path/*.dat
do
mv "$f" "$(dirname "$f")/${key}$(basename "$f")"
done
……結果:
$ ls -1 Path
20160622a.dat
20160622c d.dat
20160622CLY_BIZ_COM_PERD.dat
20160622jeff.dat