現在會使用到 FTP Client 的人,可能比較少了。但如果要使用 FTP Client 的話,大家可能會直覺想到 FileZilla Client(為求方便起見,後均簡稱 FZC)這個免費的 FTP Client 軟體。
大致上來說,FZC 的確已經可以滿足多數人的需求,包含我自己也不例外。
不過,最近在使用 FZC 時卻發現一件困擾著我的事:就是本機與伺服器的檔案修改時間,兩邊不會相同。
這看起來不像是一個大問題,只是時間不同而已嘛~不過事實上,這的確是一個大問題!不論是一般的檔案同步,或者是 FTP 檔案的同步,只要是用到同步功能,通常都是利用檔案的修改時間來做判斷,或許判斷率不是 100%,但這卻是最快最有效率的判斷方式。
若說來源的目的地的檔案修改時間都不相同的話,那可能就會造成同步上的錯誤,也可能造成每次的同步,都需要將每個檔案重新同步,而造成時間效率上的損失。
先說說 FZC 的情況好了。假設一名為 test.php 的檔案
- 本機檔案的修改時間:2015/08/08 15:31:44
- 伺服器端檔案的修改時間:2015/08/08 15:31:44
此時,兩地的修改時間都是相同的。
當我修改了本機檔案,此時
- 本機檔案的修改時間:2015/08/08 15:32:14
- 伺服器檔案的修改時間:2015/08/08 15:31:44
可以明顯發現,本機檔案是更新的。
我若把本機檔案上傳到伺服器,那麼兩地的修改時間都會相同,也就是
- 本機檔案的修改時間:2015/08/08 15:32:14
- 伺服器檔案的修改時間:2015/08/08 15:32:14
這部份,絕對是沒有問題的。但我若再次修改本地時間:
- 本機檔案的修改時間:2015/08/09 10:12:04
- 伺服器檔案的修改時間:2015/08/08 15:32:14
本機檔案又比伺服器端更新了,但我沒有上傳本機檔案,反而是從伺服器上下載檔案
猜猜看,本機檔案的修時間為何?答案是,不變,依然維持著:
- 本機檔案的修改時間:2015/08/09 10:12:04
- 伺服器檔案的修改時間:2015/08/08 15:32:14
雖然我在下載過程,已經選擇了「Overwrite File」,但本機的修改時間仍然不動如山,但我希望的是,本機檔案的修改時間會變成 2015/08/08 15:32:14
很仔細地找了一下 FZC 的設定,竟然找不到相關選項。結果,它算是遠在天邊,近在眼前。
相關設定,不在 FZC 的設定中,但是它被放在上邊的功能列中的「Transfer」裡,找到「Preserve timestamps of transferred files」,把它打勾就好了,快速鍵則是 Ctrl + U。
一經打勾之後,若兩地的修改時間分別為:
- 本機檔案的修改時間:2015/08/09 10:12:04
- 伺服器檔案的修改時間:2015/08/08 15:32:14
我從伺服器上下載檔案覆蓋本機的檔案,本機檔案的修改時間,就會變成 2015/08/08 15:32:14,而不再是那不動如山的 2015/08/09 10:12:04 了。