懶的更新到blogger了

本站2010年10月以後的,都更新到google docs上了:
連結在這裡

2010/08/29

不同相機的照片整合後依時間重新命名

不同相機的照片整合後依時間重新命名
20100818-23 到日本自由行,一人一台相機(含我的HTC Desire ^^ )共4台,
回到台灣後的相片整理,之前都是把不同相機的照片放在不同的目錄,然後燒成一片光碟再給大家。

這次挑戰把4台相機的所有照片放在同一目錄。
不過四台的命名方式都不一樣...正好一台Canon,一台Sony,一台Nikon和一台 HTC。
(其實命名一樣也沒用,因為序號也不同)

應該也可以用系統的依時間排序,但已經放在同一目錄了,就想把檔名都改成時間。
而且總共拍了1千多張,已經不可能手動命名了,
也不知道用什麼指令,就只想到 date ,於是就
$ man date
發現有不錯的參數可以使用
-r, --reference=FILE display the last modification time of FILE
這就是我要的(反正拍完後就直接拷貝出來,沒有改過了)。

於是就寫了一個改檔名的Shell Script就叫 mycp 。
(因為檔案已被我分成4個目錄燒進光碟了...總要把大家的照片先收過來...所以還是要 cp )

$ cat mycp
#!/bin/sh
/bin/cp $1 `/bin/date -r $1 +%Y%m%d%H%M%S.JPG`

簡單的一行指令,就是把輸入的參數(檔案),拷貝一份到現行目錄的 YYYYMMDDHHMMSS.JPG

再來只要把光碟裡的所有 jpg 檔都丟給這個程式就可以了
$ find /path/to/20100818-23_Japan/ -type f -name "*.[jJ][pP][gG]" -exec ./mycp {} \;

搞定 ^^

不過還是有一些問題,記錄一下,供自已日後參考:
1.出發前,要請大家把相機的日期時間調整一下,只要不差太多,基本上重新命名後前後也不會差太多。
2.連拍時,可能同一秒內會拍很多張,上面程式只能處理第一張。