Linux批次更改檔名的Script


因為最近開會時提到要修改舊程式,以符合新的系統,
但是舊有的程式需要保留,並且將檔案開頭有CK的修改為FK,
因為檔案還蠻多的,所以自己就試著做一個批次更名Shell Script。
這個Shell Script已在Linux、HP-UX測試過,不過我不是系統管理員,
所以最後這個Script並沒有正式被執行過。

內容如下:
#!/bin/sh
for old_name in CK*
do
echo $old_name | sed s/CK/FK/p >tmp.log
new_name=`tail -n 1 tmp.log`
cp $old_name $new_name
done


程式說明:
for old_name in CK*
--將自己目錄內符合開頭有CK的檔案一個接一個放入變數old_name

echo $old_name | sed s/CK/FK/p >tmp.log
--將變數old_name內的檔名以sed做CK更名為FK的動作後,放入tmp.log檔
--並且覆蓋tmp.log檔,所以每次只有一行資料

new_name=`tail -n 1 tmp.log`
--變數new_name內為從tmp.log取出來的新檔名

cp $old_name $new_name
--實際複製檔案並更名