Debian
在您的主目錄中搜尋最近 2 分鐘內最後修改的包含特定字元串的文件
我正在我的主目錄中搜尋在過去兩分鐘內修改過的文件,這些文件也包含某個字元串。我試過這個命令:
find -type d -mmin -2 -ls | grep -Ril "mystring"
它似乎可以工作,但顯然它只列印內部帶有給定字元串的那些文件,而不是 2 分鐘前最後修改的包含該字元串的文件。似乎命令的第一部分沒有執行。
您對自己的建議進行了很好的嘗試
find -type d -mmin -2 -ls | grep -Ril "mystring"
這將辨識
-type d
在過去兩分鐘內被修改的目錄 ( ) 而不是文件 (-type f
)。通過管道輸出-ls
togrep
通常會在生成的文件名中搜尋mystring
. 但是,在這種情況下,該-R
標誌會改變 的行為,grep
它會忽略您的文件名列表,而是搜尋目前目錄及其下方的每個文件。所以,讓我們把問題分成兩部分
- 在您的主目錄中搜尋最近 2 分鐘內最後修改的文件
find ~ -type f -mmin -2
- $$ Files $$其中包含某個字元串
grep -Fl 'certain String' {files...}
現在你需要把它們放在一起。
{}
是from step 1生成的文件名的佔位符,尾部find
表示+
可以{}
重複多次,即多個文件名find ~ -type f -mmin -2 -exec grep -Fl 'certain String' {} +
更改
grep
toecho grep
將顯示命令正在執行的內容find
;這可能是一種有用的調試技術:find ~ -type f -mmin -2 -exec echo grep -Fl 'certain String' {} +
請考慮跑步
man find
並man grep
找出各種選項是什麼,例如-F
and-l
ingrep -Fl
,否則您將無法從已設置的練習中學到任何東西;你只是在複製一個答案。