2013-01-09 49 views
1

有沒有辦法將文件A複製到目錄B中而不更改B的時間戳?如果是,那麼它是什麼?修改目錄而不更改時間戳

編輯:

這個更大的目標:我挖一些代碼,我寫了一年多前。我發現有些事情會讓我對未來的自我感到困惑。我想在那裏添加一個README文件來解釋這個問題。但是我想保留最後一次在這個目錄下工作。

最後:

謝謝你的答案。我最終做了「touch -r B/newestoldfile B」,這足以滿足我的目的。儘管有人指出,但在任何情況下,這都不是我問題的確切答案。我投了兩個答案,但不得不接受接受。我選擇了簡單提及-r選項的那個:)

+1

你爲什麼要這樣做?你更大的目標是什麼? –

+0

不,但您可能可以將修改時間設置回它以後的狀態(請考慮['touch'](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/touch.html)命令或['utime()'](http://pubs.opengroup.org/onlinepubs/9699919799/functions/utime.html)函數調用)。 –

回答

2

您可以在使用stat -c %Y複製之前從dir獲取時間戳,並使用touch命令修改之後的時間戳。

如果你只是想從目錄副本時間戳B:

touch -r A B 
+0

用一些更清潔,適當和更短的東西編輯帖子。 –

+0

這將使用A的時間,這不一定是B的舊時間。這並不回答問題。 – cmh

+0

POST相應編輯 –

3

捕獲在B目錄下的舊的mtime。然後移動該文件,然後使用touch命令,使用舊存儲的mtime重新編寫B目錄的mtime。

old_mtime=$(stat -c%Y B) 
mv A B 
touch -d"$(date --date="@$old_time")" B 

我們用@$old_time創建紀元以來,這是什麼stat讓我們通過$old_time秒錶示日期。

+0

謝謝,我在我的問題中添加了評論。 – Spundun

1

當您編碼時,您應該使用源控制系統,如GitMercurialSubversion。它允許您創建項目文件的存儲庫,編輯文件,註冊版本以及更改內容,最終將編輯後的文件合併到項目中,並使用分佈式系統將其存放在雲中。

其他人已經正確回答了您提到的方法,但我想給您一個更好的建議,使用另一種解決方案,您最好在未來使用。

+0

謝謝法比奧。我確實使用顛覆和集市。這是爲了快速和骯髒的黑客。而且,即使在我使用版本控制時,我仍然依靠文件時間戳,有時。 – Spundun