我很好奇(但不愿意在计算机上尝试)如果我在Java上运行此代码会发生什么?
private static void deleteAll(File file)
{
for(File f : file.listFiles())
{
if(f.isFile())
{
f.delete();
}
else
{
deleteAll(f);
f.delete();
}
}
}
public static void main(String[] args) {
File file = new File("/home");
deleteAll(file);
}
这等效于linux中的rm -rf /并会删除计算机上的所有内容吗?还是操作系统会阻止我删除系统文件?
非常感谢您!
答案 0 :(得分:1)
好吧,这引起了我的兴趣,我在lxc容器上尝试了它。现在这不是科学测试,但总比没有好。
好吧,我想说我得出的结果好坏参半。如果您尝试使用Java而不是系统文件正常删除文件,那么您将可以完成工作。一旦您开始杀死系统,一切都会改变。 Java不允许您从根目录中删除任何内容,但是我确实成功删除了我的用户文件夹(/home/ubuntusuer
)。我没有破坏系统,las。
有一种机制可以阻止您删除整个系统。因此,其行为与rm -rf /
并不完全相同,但是您仍然可以用它删除很多东西。