Shell
Linux在沒有觸摸命令的情況下列出兩個日期之間的文件
我需要一個命令,它將給定日期和時間(YYYYMMDDHHMMSS - 格式)之間的文件列出到文本文件中。
我不想使用 touch 命令作為它的創建權限問題。
touch
如果您有最新版本的 GNUfind
( >= v4.3.3 ) ,則不需要使用。有了它,你可以這樣做:find /media/WD/backup/osool/olddata/ -newermt 20120101T1200 -not -newermt 20130101T1400
請注意
T
白天和小時之間的時間。如果您想重試使用
touch
為-newer
: 創建參考文件,您可以將它們放在您可以寫入 (/var/tmp
?) 的任何位置,只要您指定-newer
. 所以你可能仍然會找到一個你有權限的地方。
與
zsh
:autoload age ls -ldrt -- **/*(e{age 2013/03/06:13:20:00 2013/05/18:11:00:00})
看:
info -f zsh --index-search=age
詳情。
(請注意,它會比 Anthon 的 GNU find 解決方案效率低很多,因為它會解析這些日期,
lstat
為每個文件執行 2 秒並對文件列表進行排序(您可以通過添加oN
到萬用字元列表來避免最後一部分;用於D
包含點文件))。