2014-10-07 56 views
-2

重命名文件我有在這種格式今天的日期文件:猛砸使用方昨日

testfile - 2014-10-07-08-01-30.CSV 

我需要重命名文件:

newone_2014-10-06.CSV 

注意,更改日期到前一天。

我會每天運行一個cron。 我將如何在bash腳本中執行此操作?

+3

上一頁日期截至目前,還是以前的日期爲文件名的? – 2014-10-07 17:20:34

+0

爲什麼你要在這樣的日期文件上滾動「datestamp」?這裏的情況如何? – 2014-10-07 17:24:22

+1

每天會有一個文件在當前日期。至於爲什麼?我們是否真的從我們的客戶那裏得到答案? – GreetRufus 2014-10-07 17:28:54

回答

1
mv "testfile - $(date +'%Y-%m-%d')-08-01-30.CSV" "newone_$(date -d '-1 day' +'%Y-%m-%d').CSV" 
+0

完美!謝謝! – GreetRufus 2014-10-07 17:33:32

+0

這隻有在文件已經在'08:01:30'準確創建時纔有效。不是很穩定... – hek2mgl 2014-10-07 17:36:33

+1

@ hek2mgl有一個好點。如果你知道這個日期/時間戳只有*一個*文件,那麼實際上可能會比glob更好,因爲glob只能擴展爲一個文件。我不會說它是安全的,但它在行爲上可能更具可預測性/穩定性。例如:'mv「testfile - $(date +'%Y-%m-%d') - *。CSV'或'-08 - *。CSV' – bryn 2014-10-07 18:44:49

0

可以使用date命令:

filename=$(date -d "-1 day" +'%Y-%m-%d') 

date命令支持指定像-d '-1 day'相對時間戳。

要重命名文件使用mv命令:

mv -v old_file_name "testfile - $(date -d "-1 day" +'%Y-%m-%d').CSV"