萬盛學電腦網

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

Linux date 命令完整指南:顯示、格式化、設定時間、腳本應用與備份命名

date 是 Linux 顯示與設定系統日期時間的核心工具,支援豐富的格式化輸出 (RFC 2822、ISO 8601、自訂格式)、UTC/本地時間切換、腳本內嵌與備份檔命名。本文完整整理參數、格式代碼表與實戰範例。

date 命令示意圖

基本顯示

date
# Thu Dec  5 22:55:41 CST 2024

常用格式化輸出

格式代碼說明範例輸出
%Y四位數年份2024
%m月份 (01-12)12
%d日期 (01-31)05
%H小時 (00-23)22
%M分鐘 (00-59)55
%S秒數 (00-60)41
%F%Y-%m-%d (ISO 8601 日期)2024-12-05
%T%H:%M:%S (時間)22:55:41
%A完整星期名Thursday
%a縮寫星期名Thu
%B完整月份名December
%b縮寫月份名Dec
%sUnix Epoch 秒數1733410541
%z時區偏移 (+0800)+0800
%Z時區縮寫CST

常用參數

參數說明
-RRFC 2822 格式 (Thu, 05 Dec 2024 22:55:41 +0800)
-u / --utc顯示/設定 UTC 時間
-d STRING顯示指定字串描述的時間 (如 '2 days ago', 'next Friday')
-s STRING--set=STRING 設定系統時間 (需 root)
-f FILE--file=FILE 從檔案讀取日期字串逐行處理
--reference=FILE顯示檔案最後修改時間

實戰範例

1. 自訂格式輸出

date +"Date: %a %b-%d-%Y Time: %T Week: %W"
# Date: Thu Dec-05-2024 Time: 22:55:41 Week: 49

2. 設定系統時間 (需 root)

date --set="2024-12-25 09:17:00"

3. 相對時間計算

date -d "2 days ago"
date -d "next Monday"
date -d "1970-01-01 1234567890 sec"  # Epoch 轉換

4. 腳本內嵌變數

#!/bin/bash
DATETIME=$(date +"DATE: %a %b-%d-%Y TIME: %T WEEK: %W")
echo $DATETIME

5. 備份檔命名 (含日期)

tar czfv /backup/backup-$(date +%F).tar.gz /home/user/Documents
# 產生 backup-2024-12-05.tar.gz

6. 從硬體時鐘同步 (hwclock)

hwclock --hctosys   # BIOS → 系統
hwclock --systohc   # 系統 → BIOS

時區設定

# 查看可用時區
timedatectl list-timezones
# 設定時區 (永久)
timedatectl set-timezone Asia/Taipei
# 或傳統方式
ln -sf /usr/share/zoneinfo/Asia/Taipei /etc/localtime

小結

date 格式化字串 (+%F %T 等) 是 Shell 腳本、日誌命名、定時任務、時間運算的通用語言。熟記 %Y%m%d、%F、%T、%s、-d 相對時間、-u UTC 等核心用法,即可應對 95% 日期時間處理需求。系統時間設定請搭配 NTP/chrony 自動同步,避免手動設定造成叢集時間不一致。

copyright © 萬盛學電腦網 all rights reserved