2015-07-10 43 views
0

我有一套我從旅途中獲得的圖像。文件名具有嵌入的時間戳(例如,「2015-07-04-15-02-14.jpg」)。可悲的是,他們都是時間/日期標記下載日期,而不是當pix被拍攝時。爲了將它們整合到我在巡演中拍攝的照片中,我想更改給定文件名稱的時間戳。 (這與人們通常需要的相反)。如何從Linux中的文件名更改文件的時間戳?

這些文件將全部位於其自己的目錄中,因此我需要讀取整個目錄並根據文件名中的字符來觸摸文件。

我不是Linux腳本專家,但如果有人能幫我找出代碼來做到這一點,我會非常感激。謝謝。

回答

0

參考的touch 手冊頁請參閱有用的選項

只訪問時間

-m變化-a只改變

修改時間-t STAMP 使用[ [CC] YY] MMDDhhmm [.ss]而不是當前時間

2

你可以做t他與一個相當簡單的shell腳本,它使用你的命名約定以獲得touch命令時間戳值,例如,

#!/bin/sh 
for file in $* 
do 
    test -f "$file" || continue 
    ts=$(basename "$file" .jpg | sed -e 's/-//g') 
    touch -t $ts $file 
done 

腳本使用basename剝去「.JPG」後綴,然後使用sed刪除所有的破折號。您的剩餘數字碰巧與touch使用的時間戳值的順序相同,因此它應該可以工作。

你會使用這樣的腳本

./myscript *.jpg 

如果你想看到它做任何事情(除了可能的錯誤消息),您將添加一個符合ls(出於某種原因,GNU touch缺乏詳細通過可比公用事業爲lncp)提供-v選項:

ls -l $file 
+0

也做到了,謝謝! –

相關問題