尋找命令搜尋特定資料夾名稱而不是在結果中搜尋

尋找命令搜尋特定資料夾名稱而不是在結果中搜尋

我有一堆託管在共享託管環境中的 WordPress 網站。與每個 WordPress 網站一樣,都有「上傳」目錄。我想定期搜尋這些資料夾中的潛在惡意文件,但我當然不想一一執行。

所以問題是我如何在所有“上傳”目錄中搜尋擴展名為“.php”的文件

例如:

find . -type d -iname "uploads"

讓我獲得根目錄中的所有“上傳”資料夾,但我也想在這些目錄中搜索

答案1

可以將命令的輸出透過管道傳輸到另一個命令,但您可以使用以下命令同時搜尋兩個條件grep常用表達:

find . -type f | grep -i "/uploads/.*\.php$"

怎麼運作的:

  • find . -type f清單全部目前目錄及其子目錄中的檔案。

  • grep -i "/uploads/.*\.php$"過濾輸出:

    • -i使搜尋不區分大小寫

    • /uploads/.*\.php$是一行必須符合才能顯示的正規表示式

      • /uploads/ php正是這樣

      • .*是任何類型的字元出現任意次數

      • \.是一個字面意思.

      • $表示該行結束

您可以使用以下方法獲得相同的結果

find . -type f -iregex ".*/uploads/.*\.php"

grep但如果您了解、Perl、PHP、JavaScript 等的正規表示式,語法就會很麻煩。

相關內容