Linux touch 建立空檔案與修改時間戳
touch 是一個很神奇的指令。大多數初學者用它來「建立新檔案」,但它原本的設計目的是「摸一下」檔案,更新它的時間戳記。
常見用途
1. 建立空白檔案
如果指定的檔案不存在,touch 會直接建立一個大小為 0 的空白檔案。這是建立新檔案最快的方法。
# 建立一個名為 new_file.txt 的空檔案
touch new_file.txt
你也可以一次建立多個:
touch file1.js file2.css file3.html
2. 更新檔案時間戳記 (Timestamp)
如果檔案已經存在,touch 不會 修改檔案的內容,但它會把檔案的:
- Access Time (atime): 最後讀取時間
- Modify Time (mtime): 最後修改時間
更新為 目前的系統時間。
這有什麼用?
- 觸發某些依賴「修改時間」的自動化備份或編譯工具 (如 Make)。
- 測試
find指令依照時間搜尋的功能。
# 假設 file.txt 上次修改是三天前
# 執行 touch 後,它的修改時間會變成「現在」
touch file.txt
進階參數
-a:只修改讀取時間 (Access time)
touch -a file.txt
-m:只修改變更時間 (Modify time)
touch -m file.txt
-t:指定特定時間
如果你不想用「現在」的時間,可以用 -t 指定一個過去或未來的時間。
格式為 [[CC]YY]MMDDhhmm[.ss]。
# 將檔案時間設定為 2025年12月25日 12:00
touch -t 202512251200 file.txt
-c:不建立新檔案 (No create)
如果您只想更新時間,但「若是檔案不存在,則不建立新檔案」,請加上 -c。
touch -c ghost_file.txt
# 如果 ghost_file.txt 不存在,什麼都不會發生