2015-06-08

Ubuntu 用指令變更及檢視檔案修改日期

阿舍在 Ubuntu 上偷改一個檔案的內容,然後,不想被人家知道,所以,就想要來透過變更檔案的修改日期和時間的方式,來讓別人以為它沒被修改過,因此,天真的阿舍就去找了一下方法,一開始,阿舍以為很簡單,但是,後來再研究下去就發現,其實,去改那個檔案的日期,似乎沒有什麼太大的意義,因為,還是查的出來被人工調整過的哩 !



在 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




推薦閱讀


有疑問? 問題還是沒解決嗎? 歡迎下方留言提問和討論 😁

沒有留言 :

張貼留言

歡迎留言提問和討論 .... 😁