萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux touch 指令大師:精準修改檔案時間戳記的完整技法

Linux 檔案擁有三種時間戳記:**atime(最後存取)、mtime(最後內容修改)、ctime(最後狀態變更)**。touch 不僅能建立空檔,更是精準操控 atime/mtime 的利器。本文詳細解析參數用法、日期格式、批次修改實戰、偽造時間戳的鑑識對策,讓你駕輕就熟掌握時間操作術。

Linux touch 指令修改檔案時間

touch 參數速查表

短參數長參數功能
-a--time=atime / --time=access / --time=use僅修改 atime(存取時間)
-m--time=mtime / --time=modify僅修改 mtime(修改時間)
-c--no-create不建立新檔案(僅修改既有檔案時間)
-d--date=STRING使用指定字串時間(支援相對/絕對格式)
-t—使用 [[CC]YY]MMDDhhmm[.ss] 格式時間
-r--reference=FILE參考指定檔案的時間戳
—--help顯示說明
—--version顯示版本

日期時間字串格式(-d/--date)

GNU date 解析器極其靈活,支援:

  • 絕對:"2023-10-13 18:30:00"、"13 Oct 2023"、"6:03pm"
  • 相對:"3 months ago"、"yesterday"、"last Friday"、"-2 weeks"
  • 組合:"2023-10-13 6:03pm"

實戰範例集

1. 批次將所有 .sh 腳本時間改為 3 個月前

touch -d "3 months ago" *.sh
# 或指定具體日期
touch -d "2023-10-13" *.sh

執行前:

-rwxrwxr-x 1 oracle oinstall 8143 Jan  9 14:41 3.sh
-rw-r--r-- 1 root root       0 Jan  9 14:41 4.sh

執行後:

-rwxrwxr-x 1 oracle oinstall 8143 Oct 13 00:00 3.sh
-rw-r--r-- 1 root root       0 Oct 13 00:00 4.sh

2. 僅修改存取時間(atime)

touch -a -d "2023-01-01 00:00" important.log

3. 僅修改修改時間(mtime)

touch -m -t 202310130000 report.pdf

4. 參考其他檔案時間(同步時間戳)

touch -r reference.txt target.txt

5. 不建立新檔,僅修改既有檔案

touch -c newfile.txt  # 若 newfile.txt 不存在,不建立,不報錯

6. 自訂精確到秒的時間格式(-t)

# 格式:[[CC]YY]MMDDhhmm[.ss]
touch -t 202310131830.45 precise.txt  # 2023-10-13 18:30:45

進階:同時修改 atime 與 mtime 為不同值

touch 無法單指令分別指定 atime/mtime,需兩步驟:

touch -m -d "2023-10-13 12:00" file.txt  # 先改 mtime
touch -a -d "2023-10-13 18:00" file.txt  # 再改 atime

鑑識視角:偽造時間戳的偵測與對策

偵測手段原理
stat 檢視 ctimectime(inode 變更時間)無法被 touch 修改,若 mtime 早於 ctime 顯然異常
檔案系統日誌ext4/journal、XFS、ZFS 意圖日誌記錄實際寫入時間
備份/快照對比對比歷史快照中的 mtime/atime
應用層日誌應用程式自身記錄的寫入時間(如資料庫 WAL、Web 伺服器 access log)

警示: 偽造時間戳可能構成竄改電子證據、妨礙司法公正等法律風險,僅限測試、教學、合法授權範圍內使用。

補充:查看三種時間戳記

stat file.txt
# 輸出範例
Access: 2023-10-13 18:30:00.000000000 +0800  # atime
Modify: 2023-10-13 12:00:00.000000000 +0800  # mtime
Change: 2023-10-13 18:35:00.000000000 +0800  # ctime

結語

touch 看似簡單,實則是時間戳操作的瑞士刀。熟練掌握 -a/-m/-d/-t/-r/-c 組合,配合 GNU date 的豐富字串解析,即可應對批次修改、測試模擬、時區對齊等多元場景。但請記住:ctime 永遠記錄真相,誠實才是最好的系統管理策略。

copyright © 萬盛學電腦網 all rights reserved