當前位置:首頁 » 操作系統 » linuxdateshell

linuxdateshell

發布時間: 2025-03-14 18:04:13

linux中,怎麼通過shell語句獲取當前日期,輸出格式要求20111224.

在Linux下,可以通過date語句來獲取當前日期:

輸入:date +%Y%m%d

輸出:20190314

命令實際執行情況如下圖:


(1)linuxdateshell擴展閱讀

GNU 對 date 命令的另一個擴展是 -d 選項,使用這個功能強大的選項,您可以完成很多有意義的工作。

1、快速地查明一個特定的日期究竟是星期幾:

輸入:date -d "nov 22"

輸出:2019年 11月 22日 星期五 00:00:00 CST

在本示例中,您可以看到今年(2019年)的 11 月 22 日是星期五。

2、獲得相對日期

-d 選項還可以告訴您,相對於當前日期之前或者以後的日期。

如,您需要了解兩星期以後的日期,那麼:

輸入: date -d "2 weeks"

輸出:2019年 03月 29日 星期五 00:12:24 CST

3、使用 next/last指令,您可以得到以後的星期幾是哪一天:

輸入: date -d "next monday" (下周一的日期)

輸入: date -d next-day +%Y%m%d(明天的日期)或者:date -d tomorrow +%Y%m%d

輸入: date -d last-day +%Y%m%d(昨天的日期) 或者:date -d yesterday +%Y%m%d

輸入: date -d last-month +%Y%m(上個月是幾月)

輸入: date -d next-month +%Y%m(下個月是幾月)

4、使用 ago 指令,您可以得到過去的日期:

輸入: date -d "30 days ago" (30天前的日期)

5、您可以使用負數以得到相反的日期:

輸入: date -d "dec 14 -2 weeks" (相對:dec 14這個日期的兩周前的日期)

輸入: date -d "-100 days" (100天以前的日期)

輸入: date -d "50 days" (50天後的日期)



⑵ Linux下用shell獲取指定文件的最後修改時間並與系統時間比對,如果相差時間超過3分鍾則執行另一個腳本

使用date命令加上合適的時間格式化字元串(+%s),會顯示當前時間(或-d參數指定的時間)與1970-01-01 00:00:00相差的秒數(詳細可以參考date的man手冊)

所以基本想法就是使用date命令分別獲取當前時間與文件修改時間的秒數,然後看這2個秒數之間是否有相差180秒以上。

獲取當前時間比較簡單,直接date +%s就ok了

下面看看如何獲取文件時間

使用stat 命令後面跟一個文件名可以獲取文件的狀態,包括文件修改時間。其中文件修改時間會單獨一行顯示,格式如下:Modify: 2013-02-21 17:58:05.404876407 +0800 (具體的精度可能系統不同略微有些差別,但大致格式是這樣)

所以我們可以stat myfilename | grep Modify來獲取文件的修改時間的信息,然後通過awk分別獲取時間的日期和時間段

stat myfilename | grep Modify | awk '{print $2}' #這句獲取了日期段,即上面例子裡面的2013-02-21

stat myfilename | grep Modify | awk '{split($3,var,".");print var[1]}' #這句獲取了時間段,即上面例子裡面的17:58:05,具體關於awk的使用可以參考awk的使用手冊

那麼現在可以獲取文件修改時間與1970-01-01 00:00:00相差的描述了,就是date -d "$file_date $file_time" +%s

那麼這個時間與當前時間想減的結果與180相比就可以知道是否滿足條件了,滿足條件的話就可以執行相應的命令。

參考代碼如下:

current_datetime=`date +%s`
filedate=`stat tt.txt | grep Modify | awk '{print $2}'`
filetime=`stat tt.txt | grep Modify | awk '{split($3,var,".");print var[1]}'`
file_datetime=`date -d "$filedate $filetime" +%s
timedelta=`expr $current_datetime - $file_datetime`
if [ "$timedelta" -gt "180" ];then
echo "match condition"
fi

⑶ linux:shell 腳本 如果判斷當前時間 是不是12點之前。

  • 用date命令先取得當前的時間(僅取小時數) : date '+%H' #按24小時製取hour (00..23)

  • 然後與12進行比較,判斷是不是12點之前

參考腳本代碼:

#!/usr/bash
hh=`date'+%H'`
if[$hh-gt12]
then
echo"$hhbehind12"
else
echo"$hhinfrontof12"
fi

⑷ 使用linux shell 命令date "+%Y-%m-%d %H:%M:%S" 後如何丟棄後面的秒數據

date "+%Y-%m-%d %H:%M:%S" | cut -d ":" -f1,2

熱點內容
視頻伺服器搭建海康 發布:2025-04-30 23:50:29 瀏覽:90
xp共享怎麼設置密碼 發布:2025-04-30 23:50:24 瀏覽:155
租用電腦主機搭建伺服器 發布:2025-04-30 23:28:06 瀏覽:729
php子類調用父類方法 發布:2025-04-30 23:11:55 瀏覽:673
存檔加密id 發布:2025-04-30 22:20:50 瀏覽:743
mac搭建php環境 發布:2025-04-30 21:58:13 瀏覽:137
雅迪電動車配置有哪些 發布:2025-04-30 21:38:27 瀏覽:154
為什麼用文件存儲取代mysql 發布:2025-04-30 21:17:26 瀏覽:609
我的世界免費伺服器ip 發布:2025-04-30 20:41:26 瀏覽:772
華為雲相冊在哪裡找安卓11 發布:2025-04-30 20:19:59 瀏覽:273