[精讚] [會員登入]
1324

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

你可能感興趣的文章

[FREEBSD] 使用 logrotate 來管理及備份日誌檔 Unix 系統中的日誌檔存放在 /var/log/ 中,可供我們查錯及觀察使用。日誌檔最大的問題是會不斷的長大。

[Freebsd8] PHP<5.5 安裝APC Freebsd8 上(php<5.5版本)安裝 pecl-APC

[FREEBSD10] 解決vi/vim的中文字亂碼問題 vi, vim在Freebsd10使用UTF8時,中文字會出現亂碼,解決方法

[FREEBSD11] ssh登入時免輸入密碼 自動程式需要進到別台機器時,沒辦法使用交談式方式輸入密碼,發現一個簡單的方法設定

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

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

隨機好文

使用Google尋找你的手機 這近發現google竟然可以用來找android的手機,而且不需要經過什麼設定或安裝軟體。

PHP for sphinx 函式庫安裝 PECL/sphinx PHP>= 5.2.2 已經能原生支援 sphinx,可是預設的沒有裝,我們得自己裝才能用

Linux shell 的date表示法 linux下SHELL中的date表示法

看懂DSUB DVI HDMI USB等各式影音接頭 看懂DSUB DVI HDMI等各式影音接頭

TFTP Server 安裝及使用 讓設備的網路設定檔或是韌體經由TFTP拷備出來,操作的方法