所以我想使用以下管道删除当前目录中的所有文件:
ls | sed -rn 's/(.*)\.jpg$/mv -n & \1.jpeg/pi' | sh
如何创建一个文件,命名为运行上述管道会删除当前目录中的所有文件。从而通过代码注入。
请给出用于创建该文件的命令。
答案1
上面的命令将(有点笨拙)将当前的所有文件直接从 *.jpg 重命名为 *.jpeg,可以修改它以删除所有文件,但几乎不适合该任务。
但是,听起来您正在尝试创建一个合适的文件名,以便当上述命令遇到它时,它将删除当前目录中的所有内容。这当然是可以实现的(尽管这会让你质疑你的动机......)。
免责声明:你可能会因此而受到损害。这一切都取决于你,首先进行测试,这样你就不会破坏一些值得关心的东西,并且如果你被发现在他们的系统上恶意这样做,预计目标会对你采取法律行动。
现在这已经不成问题了,您想要创建一个与 sed 输入匹配的文件,但创建一个合适的输出来仍然执行您想要的操作。
;rm *;.jpg
创建一个名为(或;rm -rf *;.jpg
进行更积极的删除)的文件。您可以仅通过 sed 部分运行它,看看它会通过以下方式执行什么操作:
echo ";rm * ; .jpg" | sed -rn 's/(.*)\.jpg$/mv -n & \1.jpeg/pi'
编辑:作为旁注,您列出的命令可以在用户运行它时执行(几乎)您喜欢的任何内容,删除所有文件是对这一弱点的相当缺乏想象力(且具有破坏性)的利用。也许考虑一些更丰富多彩的东西(并且更容易逆转)?