Find
刪除由“愚蠢”Crypt0L0cker 勒索軟體添加的遞歸雙擴展
我正在嘗試從受“愚蠢”Crypt0L0cker 勒索軟體影響的 Windows 存檔中恢復一些文件。事實上,在快速檢查將文件移動到我自己的系統後,惡意軟體似乎只是在文件中添加了第二個隨機副檔名(是的,我知道“副檔名”並不意味著什麼)。手動重命名文件就可以了。
“2016.doc.irolox 列表”-> 手動重命名 -> “2016.doc 列表”
我想有一些提示來執行這個工作流程:
- 在給定文件夾的所有子目錄中遞歸循環
- 文件名稱中包含空格(但它們不包含實名中的點)
- 一些文件似乎沒有受到影響。規則:如果它們只有一個“副檔名”,則不要考慮它們(因此,如果檢測到 2 個點 -> 文件受到影響)
- 重命名文件刪除最後一個“副檔名”。
有什麼技巧可以達到這個結果嗎?
首先轉到文件夾存檔,然後執行:
find | awk -F'.' '{if ($3 != "" && $4 != "" ){system("mv "$0" ./"$2"."$3)}}'
這將查找文件夾和子文件夾中的每個文件,如果發現文件具有兩個副檔名,它將僅使用第一個副檔名重命名
例如命令之前的文件夾:
. ./lolo.doc ./soso ./soso/jojo.doc.koko.momo ./kokooiko.doc.soso ./jojo.doc.koko
命令後的文件夾:
. ./lolo.doc ./kokooiko.doc ./jojo.doc ./soso ./soso/jojo.doc
您可以使用變數替換,例如:
MYVAR="List for 2016.doc.irolox" echo ${MYVAR%.*}
以上從變數值的後端刪除了最短匹配
.*
。這樣,您可以使用以下命令重命名文件:
mv "${MYVAR}" "${MYVAR%.*}"