bash - 查找我的iphone - 雲端itunes




如何使用'查找'來搜索在特定日期創建的文件? (6)

如何使用UNIX命令find來搜索在特定日期創建的文件?


@Max:關於創作時間是正確的。

但是,如果要計算-atime-ctime-mtime參數之一的經過天數參數,則可以使用以下表達式

ELAPSED_DAYS=$(( ( $(date +%s) - $(date -d '2008-09-24' +%s) ) / 60 / 60 / 24 - 1 ))

將“2008-09-24”替換為您想要的任何日期,ELAPSED_DAYS將設置為當天至今天之間的天數。 (更新:從結果中減去一個以符合find的日期舍入。)

因此,要查找2008年9月24日修改的任何文件,命令將為:

find . -type f -mtime $(( ( $(date +%s) - $(date -d '2008-09-24' +%s) ) / 60 / 60 / 24 - 1 ))

如果你的find版本不支持@Arve:提供的答案中提到的-newerXY謂詞,這將起作用。


find location -ctime time_period

time_period的例子:

  • 超過30天前: -ctime +30

  • 不到30天前: -ctime -30

  • 正好30天前: -ctime 30


你可以這樣做:

find ./ -type f -ls |grep '10 Sep'

例:

[[email protected] etc]# find /var/ -type f -ls | grep "Dec 24"
791235    4 -rw-r--r--   1 root     root           29 Dec 24 03:24 /var/lib/prelink/full
798227  288 -rw-r--r--   1 root     root       292323 Dec 24 23:53 /var/log/sa/sar24
797244  320 -rw-r--r--   1 root     root       321300 Dec 24 23:50 /var/log/sa/sa24

使用-atime,-ctime和-mtime開關查找,您可以接近您想要實現的目標。


正如Max指出的那樣,你不能,但是檢查修改或訪問的文件並不是那麼困難。 我寫了一篇關於這個的tutorial ,直到今天。 其實質是使用-newerXY! -newerXY ! -newerXY

示例:查找2007年6月7日修改的所有文件:

$ find . -type f -newermt 2007-06-07 ! -newermt 2007-06-08

要查找2008年9月29日訪問的所有文件,請執行以下操作:

$ find . -type f -newerat 2008-09-29 ! -newerat 2008-09-30

或者,在同一天更改了他們的文件:

$ find . -type f -newerct 2008-09-29 ! -newerct 2008-09-30

但是,如果您不更改文件權限,則'c'通常對應於創建日期。


這是兩步,但我喜歡這樣做:

首先創建一個具有特定日期/時間的文件。 在這種情況下,該文件在2008年10月1日午夜

touch -t 0810010000 /tmp/t

現在,我們可以找到比上述文件更新或更舊的所有文件(通過文件修改日期進行操作,也可以使用-anewer訪問已更改的文件並更改文件狀態)。

find / -newer /tmp/t
find / -not -newer /tmp/t

您也可以通過觸摸創建兩個文件來查看特定日期之間的文件

touch -t 0810010000 /tmp/t1
touch -t 0810011000 /tmp/t2

這將在兩個日期和時間之間找到文件

find / -newer /tmp/t1 -and -not -newer /tmp/t2




find