Files

在linux中查找兩個文件夾日期之間的文件?

  • January 28, 2016

我需要找到文件夾名稱以及內容中包含我的字元串的文件名。我在這個目錄“ /data/queue/data”中,我在同一個目錄中有很多文件夾,在每個文件夾中,我有各種​​文件。

以下是此目錄“ /data/queue/data”中的文件夾,每個文件夾中都有各種文件。

david@machineA:/data/queue/data$ ls -lrth
drwxr-xr-x 2 david david  12K Apr 11 18:58 1428800400
drwxr-xr-x 2 david david  12K Apr 11 19:58 1428804000
drwxr-xr-x 2 david david  12K Apr 11 20:58 1428807600

我只想從此目錄執行命令-“ /data/queue/data”,但它應該只找到時間戳來自的文件夾中的文件April 13th 3 AM to April 13th 9 AM

下面是我擁有的命令,它將遞歸地在所有文件夾中查找文件,但我應該如何確保它只能從April 13th 3 AM to April 13th 9 AM文件夾中查找文件?

david@machineA:/data/queue/data$ grep -rl "pcV6URY" /data/queue/data

做這個的最好方式是什麼?

試試這個:

touch -d"April 13 3 AM" file1
touch -d"April 13 9 AM" file2
find . -newer file1 ! -newer file2 -exec grep -l "pcV6URY" {} +
rm file1 file2

這個怎麼運作

find可以直接使用時間,但touch可以更好地處理人類風格的日期:

  • touch -d"April 13 3 AM" file1; touch -d"April 13 9 AM" file2

這將創建兩個文件來標記時間範圍的開始和結束。

  • find . -newer file1 ! -newer file2 -exec grep -l "pcV6URY" {} +

這會查找比 .file1但不比 新的文件file2。對於所有此類文件,它會grep在它們上執行以查看它們是否包含您的字元串。

引用自:https://unix.stackexchange.com/questions/196054