在 Ubuntu 上來說,就阿舍所知,一個檔案約莫會有四種日期,分別是建立(Create/Birth)、修改(Modify/mtime)、存取(Access/atime)及變更(Change/ctime)等四種,但是,其中的,建立日期在 Ubuntu 上並沒有被儲存起來,因此,可以查的到和修改的,就只有後面的那三種日期,然後,這三種中的修改(mtime)和存取(atime)日期可以用 touch 指令來改變,可是,最後的變更日期(ctime)就不是那麼容易可以操控哩 !
當一個檔案的檔案內容、所有權、屬性被變更時,檔案的變更日期(ctime)就會跟著改變,所以,當阿舍用 touch 指令來變更一個檔案的存取或修改日期時,這個變更日期也會跟著變,因此,當阿舍把檔案的修改或存取日期改成一個過去或未來的日期和時間後,檔案的變更日期是記錄變更當時的時間,就會出現不同步的情形,這個時候只要用 stat 或 ls 指令就可以查的出來了哩 !
不過,除了像阿舍前面提到的不良動機之外,在系統管理實務上,還是有一些情況是需要透過變更檔案的修改日期來配合或調整作業的,像是檔案同步或備份等的作業需要的,下面是阿舍整理過的變更和查看檔案各種時間的操作方式,有需要的人可以參考用用囉 !
# 變更檔案的 atime/mtime 為目前的日期和時間
$ touch atd.txt
# 只變更檔案的 atime 為目前的日期和時間
$ touch -a atd.txt
# 只變更檔案的 mtime 為目前的日期和時間
$ touch -m atd.txt
# 變更檔案的 atime/mtime 為指定日期,只指定日期,時間會變成 000000
$ touch -d 20150101 atd.txt
# 變更檔案的 atime/mtime 為指定日期和時間 (2015/1/15 8:21:32)
$ touch -t 201501150821.32 atd.txt
# 將 atd.txt 檔案的日期和時間套到 ayu.txt 檔案,但是,ctime 不會被套用哩 !
$ touch -r atd.txt ayu.txt
# 檢視檔案的各種日期和時間
$ stat atd.txt
# 用 ls 指令查看檔案的 mtime
$ ls -l
# 用 ls 指令查看檔案的 ctime
$ ls -lc
# 用 ls 指令查看檔案的 atime
$ ls -lu
問題還是沒解決嗎 ?? 這裡有更多的 Ubuntu 相關教學可以參考哩 ...
買本阿舍寫的電子書帶走 - Ubuntu 指令新手馬上會用到的 35 個技法
沒有留言 :
張貼留言