Bash

如何為管道創建文件名以刪除所有文件?

  • December 14, 2014

所以我想使用以下管道刪除目前目錄中的所有文件:

ls | sed -rn 's/(.*)\.jpg$/mv -n & \1.jpeg/pi' | sh

如何創建一個文件,命名為執行上述管道會刪除目前目錄中的所有文件。從而通過程式碼注入。

請給出用於創建該文件的命令。

您上面的命令將(有點笨拙)將目前文件中的所有文件直接從 *.jpg 重命名為 *.jpeg,可以修改它以刪除所有文件,但幾乎不適合該任務。

但是,聽起來您正在嘗試製作一個合適的文件名,這樣當上述命令遇到它時,它將刪除目前目錄中的所有內容。這當然是可以實現的(儘管它使您質疑您的動機……)。

**免責聲明:**您可能會對此造成損害。這一切都取決於你,首先進行測試,這樣你就不會破壞你關心的東西,如果你被發現在他們的系統上惡意這樣做,你的目標會對你採取法律行動。

現在已經不礙事了,您想創建一個與 sed 輸入匹配的文件,但創建一個合適的輸出仍然可以執行您想要的操作。

創建一個名為;rm *;.jpg(或;rm -rf *;.jpg更激進的刪除)的文件。您可以僅通過 sed 部分執行它,以查看它將通過以下方式執行的操作:

  • echo ";rm * ; .jpg" | sed -rn 's/(.*)\.jpg$/mv -n & \1.jpeg/pi'

編輯:作為旁注,您列出的命令可以在使用者執行它時執行(幾乎)您喜歡的任何內容,刪除所有文件是對這個弱點的一種相當缺乏想像力(和破壞性)的使用。也許考慮一些更豐富多彩(更容易反轉)的東西?

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