[精讚] [會員登入]
1343

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

你可能感興趣的文章

[Freebsd14] 登入時自動加載alias (bash shell) alias登入時自動加戴雖然是不起眼的設定,但也讓我找了好久

Freebsd 建立/刪除/修改使用者+特權使用者 Freebsd 下使用者建立、刪除、修改使用者,新增特權使用者

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

Freebsd上php+ session 的問題 php的session在freebsd上竟然預設是關掉的?簡直沒氣死我。

[FREEBSD] 使用ADSL撥接程式為何 我在家架了一台 FREEBSD 的SERVER,其中ADSL設定和操作

[Freebsd] 利用pf達成port forwarding 及nat 為了達成port forwarding 及NAT 的功能,不斷思考加上試了三天終於試出來。

隨機好文

[札記] 2016.7~12月札記 札記,只是札記

Smarty安裝 smarty 是著名的樣版引擎,非常的好用,用多了突然發現拿掉smarty反而不會寫php了,以下是安裝過程..

[大型機台] 熱血高校躲避球 多少少年時光歲月耗在這個遊戲上,二十幾年前的那個時光,唯一想做的事就是把吃飯錢省下來拿去打一場五塊錢的電動,就算是沒錢也

對物品的感情 這個議題很奇怪,可是大部分的人都會有,物品是死的,壞了就淘汰,出新的就被替換。為何會有情感?

關閉瀏覽器表單的自動完成autocomplete 什麼是自動完成?就是當我們在網頁的輸入文字欄位中打入文字時,瀏覽器會把曾輸入過歷史記錄中找出來讓我們選擇。