[精讚] [會員登入]
1353

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 設定quota 在Freebsd使用quota以限制使用者容量

[Freebsd] VSFTP的安裝和配置 Freebsd 安裝和配置 VSFTP

[Freebsd] 使用 ADSL 撥接上網 Freebsd上要使用 ADSL 撥接上網,該如何設定?

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

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

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

隨機好文

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

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

[Windows7] 移除IE10及移除IE11 Windows7 不得已的情況要移除IE11或IE10怎麼做?

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

[Win7] 燒錄 iso 檔 在Windows7 中內建燒錄程式,可以直接把檔案拉到光碟機裡,再執行燒錄。