Linux Shell 找出指定日期之後 有修改的檔案

於 Linux bash shell 要計算兩個日期的差異,然後將此日期之後有修改的檔案印出來,要怎麼做呢?

閱讀全文〈Linux Shell 找出指定日期之後 有修改的檔案〉

Linux 使用 find 找出限定修改時間內的檔案

Linux 的 Find 在限定日期方面很常使用到,在這邊把幾個參數紀錄一下~

  •  find
    • -mtime 搜尋檔案的修改時間(天)
    • -mmin 搜尋檔案的修改時間(分鐘)
    • -ctime 搜尋檔案的建立時間(天)
    • -cmin 搜尋檔案的建立時間(分鐘)
    • -atime 搜尋檔案的最後開啟時間(天)
    • -amin 搜尋檔案的最後開啟時間(分鐘)

範例

  • find ./ -mtime 3 # 在當前目錄下搜尋3天時修改的檔案
  • find ./ -mtime +3 # 在當前目錄下搜尋3天前修改的檔案
  • find ./ -mtime -3 # 在當前目錄下搜尋3天內修改的檔案

搭配 mv 搬移檔案

  • find . -mtime +3 -exec mv {} /tmp/directory \; #  超過3天前修改的檔案都搬到 /tmp/directory 去
  • find . -type f | xargs -I '{}' mv {} /tmp/directory # 把檔案都搬到 /tmp/directory 去

PHP 取得本月份最後一天的日期

PHP 要抓取本月份的最後一天,一般都是抓下個月第一天,然後轉成 timestamp - 3600 秒 (減1秒也行,只要到上個月的前一天就好),來取得上個月的最後一天。

PHP 的 date 使用 "t" 就可以抓到此月份最後一天的日期,如下述範例:

<?php                                                                                                                                                                                                    
echo date('Y-m-t', strtotime('now')); // 2017-07-31                                                                                                                                                         
?>

註:strtotime('now') 可省略

Bash history 加上 日期和時間

Linux 使用 Bash 要查看之前輸入過的命令,可以使用 history,history 就會列出:

  1. 1 ls
  2. 2 vi
  3. 3 man date
  4. ...

使用 !1 就會執行 1 的命令 (ls)

但是知道大約何時下過的命令,但是 history 預設是沒有存時間的,所以想要把時間也紀錄進去,要怎麼做呢?

閱讀全文〈Bash history 加上 日期和時間〉

Bash shell 的 date 印出「年月日時分秒」的參數

Linux 的 Bash Shell 很常會使用到 date 的命令,特別是用到備份、某些固定時間該做的處理等等,參數是哪些呢?

每次都是去 man date 來查看這個參數(因為會有大小寫不同,24hr、前面補0 等不同),在此紀錄最常用的年月日參數,並把跟 awk 搭配的方式列出來。

閱讀全文〈Bash shell 的 date 印出「年月日時分秒」的參數〉