[精讚] [會員登入]
1321

Freebsd shell 的日期date表示法

Freebsd 的日期date功能超級強大,學會會很方便。

分享此文連結 //n.sfs.tw/10493

分享連結 Freebsd shell 的日期date表示法@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2019-10-24 16:46:25 最後編修
2016-12-26 01:34:37 By 張○○
 

自動目錄

FREEBSD中的date函數和linux的參數不太一樣,但是更方便

顯示今天、前一天日期

顯示今天日期

# date +"%a %b %d %T %Z %Y"

週四  7月 04 09:24:35 CST 2019

# date -v -1d +%Y%m%d%H%M%

201907030848

顯示上個月,產生字串

$  date -v-1m +'%y%m%d.sql'

190604.sql

十天後的日期、順便產生週次

$ date -v +10d +'%Y%m  --%W'

201908  --27

一個小時候的timestamp

$ date -v +1H +'%s'

1562207946

列印時間

$ date +%T
09:48:25

字串格式如果不連續就要用單引號或雙引號包起來,有連續的話引號可省略。

把日期指定給變數

這個好處是可以產生字串格式的檔案名稱

# set curr_day=`/bin/date -v-1d +'%y%m%d.sql'`

# echo $curr_day
190703.sql

環境變數 locale

把日期輸出改為英文,在Freebsd 下使用 setenv
# setenv LC_TIME en_US.utf8
# setenv LC_TIME _US.utf8

假若以上命令無效(也許因為 LC_ALL 已經設定),則改下
# setenv LC_ALL en_US.utf8

可是這樣會改變目前登入環境的 locale,(我們可以下 locale 指令來看 locale ),雖然不會影響系統的 locale,但我們有更好的解決方法,就是要使用時再改 LC_ALL,寫在 shell 裡就能解決這個問題:

# /usr/bin/env LC_ALL=en_US.UTF-8 /bin/date -v -1m -j '+%Y%b'

有關變數的意義,請參考「Linux shell 的date表示法」這篇的欄目三

 

參考資料

[1] https://blog.sleeplessbeastie.eu/2011/12/15/how-to-find-yesterdays-or-tomorrows-date-using-shell/


原文 2008-11-24 15:39:12  2019-7-4更新

END

你可能感興趣的文章

[FREEBSD10] 安裝 dhcp 伺服器 Freebsd10 安裝 dhcp for IPv4伺服器

Freebsd shell 的日期date表示法 Freebsd 的日期date功能超級強大,學會會很方便。

[Freebsd] 查看dhcp客戶端 Freebsd如何能知道目前的租約及有效狀態

[FREEBSD] AMD64 CPU 編譯核心 Freebsd8+ AMD64 CPU 編譯核心

[FreeBSD] 查看檔案詳細資訊 利用stat查看檔案詳細資訊

[Freebsd] 建立ramdisk Freebsd 建立ramdisk,作為高速的暫存空間

隨機好文

HP SAS硬碟leds燈號說明 HP SAS硬碟leds燈號(hp g7/g6系統適用)說明

如何在linux下執行java 原生的java應用程式可以使用簡單的方法在console下面寫出來,適合作簡單的應用

設計的工作絕不接受比價 拿買陽春麵的價格想買牛肉麵,寧願倒掉也不賣

[MAC] 安裝APACHE+PHP OS Darwin OpenIDMac1deAir 15.6.0 Darwin Kernel Version 15.6.

此一時彼一時 我是不是易怒的人,其實我也不知道,總之我常會失控,不知道自己在幹嘛。這近生活過得浮浮的,不是很踏實,總會想太多,我甚至會