Files
在linux中查找兩個文件夾日期之間的文件?
我需要找到文件夾名稱以及內容中包含我的字元串的文件名。我在這個目錄“
/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
在它們上執行以查看它們是否包含您的字元串。