[20210626]find -mtime +N N -N時間問題補充.txt
[20210626]find -mtime +N N -N時間問題補充.txt
--//昨天find -mtime的測試,為了更好的說明問題,做一個例子:
--//還有另外一個原因確定是否包括等於的情況.
--//後記:應該寫成Q second , 不過不影響測試結果.就是升序第3個日期的時間部分表示當時時間(時分秒).
--//順便說一下我修改ls的別名:
alias ll='ls -l --color=auto --time-style=+"%Y-%m-%d %H:%M:%S"' 2>/dev/null
alias l.='ls -d .* --color=auto --time-style=+"%Y-%m-%d %H:%M:%S"' 2>/dev/null
alias ls='ls --color=auto --time-style=+"%Y-%m-%d %H:%M:%S"' 2>/dev/null
$ mkdir aaa
$ cd aaa
$ seq -3 1 2 | xargs -IQ date "+%Y%m%d%H%M.%S" --date='2 days ago Q seconds ago' | xargs -IQ touch -t Q Q ; find . -mtime +1 -exec ls -ltr {} \+; echo ====== ; ls -ltr
-rw-r--r-- 1 oracle oinstall 0 Jun 23 15:53 ./202106231553.13
-rw-r--r-- 1 oracle oinstall 0 Jun 23 15:53 ./202106231553.14
======
total 0
-rw-r--r-- 1 oracle oinstall 0 2021-06-23 15:53:13 202106231553.13
-rw-r--r-- 1 oracle oinstall 0 2021-06-23 15:53:14 202106231553.14
-rw-r--r-- 1 oracle oinstall 0 2021-06-23 15:53:15 202106231553.15
-rw-r--r-- 1 oracle oinstall 0 2021-06-23 15:53:16 202106231553.16
-rw-r--r-- 1 oracle oinstall 0 2021-06-23 15:53:17 202106231553.17
-rw-r--r-- 1 oracle oinstall 0 2021-06-23 15:53:18 202106231553.18
--//看出分界點了嗎?執行時的當前時間是2021-06-25 15:53:15.我測試多次find -mtime +1 都是顯示2條,注意執行前刪除前面測試的檔案.
--//實際上比較準確的時間點是 小於 當前時間-2天.
$ rm -f 2021*
--//記住每次測試前執行它,後面不再提及
$ seq -3 1 2 | xargs -IQ date "+%Y%m%d%H%M.%S" --date='2 days ago Q seconds ago' | xargs -IQ touch -t Q Q ; find . -mtime 1 -exec ls -ltr {} \+; echo ====== ; ls -ltr
--//注意執行的是find . -mtime 1
-rw-r--r-- 1 oracle oinstall 0 Jun 23 15:55 ./202106231555.52
-rw-r--r-- 1 oracle oinstall 0 Jun 23 15:55 ./202106231555.53
-rw-r--r-- 1 oracle oinstall 0 Jun 23 15:55 ./202106231555.54
-rw-r--r-- 1 oracle oinstall 0 Jun 23 15:55 ./202106231555.55
======
total 0
-rw-r--r-- 1 oracle oinstall 0 2021-06-23 15:55:50 202106231555.50
-rw-r--r-- 1 oracle oinstall 0 2021-06-23 15:55:51 202106231555.51
-rw-r--r-- 1 oracle oinstall 0 2021-06-23 15:55:52 202106231555.52
-rw-r--r-- 1 oracle oinstall 0 2021-06-23 15:55:53 202106231555.53
-rw-r--r-- 1 oracle oinstall 0 2021-06-23 15:55:54 202106231555.54
-rw-r--r-- 1 oracle oinstall 0 2021-06-23 15:55:55 202106231555.55
--//當前時間是2021-06-25 15:55:52,
--//find . -mtime 1 的查詢時間範圍的下邊界是 大於等於 當前時間-2天.
$ seq -3 1 2 | xargs -IQ date "+%Y%m%d%H%M.%S" --date='1 days ago Q seconds ago' | xargs -IQ touch -t Q Q ; find . -mtime 1 -exec ls -ltr {} \+; echo ====== ; ls -ltr ; rm -f 202106*
-rw-r--r-- 1 oracle oinstall 0 Jun 24 16:12 ./202106241612.50
-rw-r--r-- 1 oracle oinstall 0 Jun 24 16:12 ./202106241612.51
======
total 0
-rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:12:50 202106241612.50
-rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:12:51 202106241612.51
-rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:12:52 202106241612.52
-rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:12:53 202106241612.53
-rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:12:54 202106241612.54
-rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:12:55 202106241612.55
--//當前時間是2021-06-25 16:12:52
--//find . -mtime 1 的查詢時間範圍的上邊界是 小於 當前時間-1天.
$ seq -3 1 2 | xargs -IQ date "+%Y%m%d%H%M.%S" --date='1 days ago Q seconds ago' | xargs -IQ touch -t Q Q ; find . -mtime -1 -exec ls -ltr {} \+; echo ====== ; ls -ltr ; rm -f 202106*
-rw-r--r-- 1 oracle oinstall 0 Jun 24 16:19 ./202106241619.35
-rw-r--r-- 1 oracle oinstall 0 Jun 24 16:19 ./202106241619.36
-rw-r--r-- 1 oracle oinstall 0 Jun 24 16:19 ./202106241619.37
-rw-r--r-- 1 oracle oinstall 0 Jun 24 16:19 ./202106241619.38
.:
total 0
-rw-r--r-- 1 oracle oinstall 0 Jun 24 16:19 202106241619.33
-rw-r--r-- 1 oracle oinstall 0 Jun 24 16:19 202106241619.34
-rw-r--r-- 1 oracle oinstall 0 Jun 24 16:19 202106241619.35
-rw-r--r-- 1 oracle oinstall 0 Jun 24 16:19 202106241619.36
-rw-r--r-- 1 oracle oinstall 0 Jun 24 16:19 202106241619.37
-rw-r--r-- 1 oracle oinstall 0 Jun 24 16:19 202106241619.38
======
total 0
-rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:19:33 202106241619.33
-rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:19:34 202106241619.34
-rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:19:35 202106241619.35
-rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:19:36 202106241619.36
-rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:19:37 202106241619.37
-rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:19:38 202106241619.38
--//感覺輸出有點奇怪,實際存在一個目錄.在作怪,因為. 在find . -mtime -1 的範圍包括.目錄,改寫如下:
$ seq -3 1 2 | xargs -IQ date "+%Y%m%d%H%M.%S" --date='1 days ago Q seconds ago' | xargs -IQ touch -t Q Q ; find . -name "202106*" -mtime -1 -exec ls -ltr {} \+; echo ====== ; ls -ltr ; rm -f 202106*
-rw-r--r-- 1 oracle oinstall 0 Jun 24 16:22 ./202106241622.54
-rw-r--r-- 1 oracle oinstall 0 Jun 24 16:22 ./202106241622.55
-rw-r--r-- 1 oracle oinstall 0 Jun 24 16:22 ./202106241622.56
-rw-r--r-- 1 oracle oinstall 0 Jun 24 16:22 ./202106241622.57
======
total 0
-rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:22:52 202106241622.52
-rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:22:53 202106241622.53
-rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:22:54 202106241622.54
-rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:22:55 202106241622.55
-rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:22:56 202106241622.56
-rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:22:57 202106241622.57
--//當前時間是2021-06-25 16:22:54.
--//find . -mtime -1 的查詢時間範圍是 大於等於 當前時間-1天.
總結:
1.感覺測試在細節上浪費時間.
2.總之清楚一點,大致總結如下:
find -mtime +N 表示 小於 <當前時間-(N+1)天 .
find -mtime +1 表示 在 >=當前時間-(N+1)天 <當前時間-(N)天 之間.
find -mtime -1 表示 大於 >=當前時間-(N)天.
--//我敢打賭許多人在這個問題的理解上都是錯誤的.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2778492/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20210625]find -mtime +N N -N時間問題補充.txt
- [20210624]find -mtime +N N -N的時間範圍問題.txt
- [20210708]find -mtime +0 0 -0時間問題補充.txt
- N皇后問題
- 7-22 n queens (10分) 八皇后(n皇后)問題
- 時間複雜度O(1)、O(n)、O(n²)、O(nlogn)的含義時間複雜度
- Mybatis N+1問題解析MyBatis
- HDU - 2553 N皇后問題(DFS)
- 輸入N,再輸入N個數,N
- Dynamics CRM實體系列之1:N、N:1以及N:N關係
- 11.2.0.3 :PRVG-11134 : Interface "n.n.n.n" on node "racnode1" is not able to..
- Leetcode每日一題:52.N-Queens II(N皇后Ⅱ)LeetCode每日一題
- N皇后和N皇后2
- 2020-11-18 N皇后問題
- N皇后問題(各種優化)優化
- MySQL中資料型別(char(n)、varchar(n)、nchar(n)、nvarchar(n)的區別)MySql資料型別
- [20180628]expdp與rows=n.txt
- 百雞問題擴充套件-N雞問題N元錢買N只雞,公雞每隻5元,母雞每隻3元,小雞1元3只,N元錢必須剛好買N只雞,而且雞必須整隻買,不能劈開買。套件
- 訊號與槽N對N
- n*n的乘法口訣表
- 3. 工作分配問題(回溯法)設有n件工作分配給n個人。。。
- 2022-07-17:1、2、3...n-1、n、n、n+1、n+2... 在這個序列中,只有一個數字有重複(n)。 這
- 關於宏定義 Bin(n),LongToBin(n),LongToBin(0x##n##L)
- 計算2的N次冪n 可輸入,n為自然數
- 求N!
- N 皇后
- n^k
- n+p與n^6+p^6
- 時間複雜度O(n)和空間複雜度時間複雜度
- 線性時間選擇(含平均情況O(n)和最壞情況O(n)演算法)演算法
- 03:因子 檢視 提交 統計 提問 總時間限制: 8000ms 記憶體限制: 65536kB 描述 輸入1個整數n。從小到大依次輸出n的所有因子。 輸入 1個整數n(n<20億) 輸出 升序輸出n的所記憶體
- FBL5N、FBL3N、 FBL1N ALV新增欄位顯示
- ASE160N08-ASEMI低壓N溝道MOS管ASE160N08
- ASE180N08-ASEMI低壓N溝道MOS管ASE180N08
- 9.18n
- 51,N皇后
- N35
- CSS perspective(n)CSS