我刚刚下载了一个机器学习数据集,其中包含大约 30GB 的图像文件,这些图像文件都保存在一个 zip 文件中。我本想将其解压到一个文件夹中,但却不小心将其解压到了我的桌面上。我的电脑只运行英特尔奔腾处理器,因此这几乎使我的整个电脑都陷入了停顿。我该如何删除这些图像文件?
我已经重启了好几次,我可以访问应用程序,尽管我点击的任何东西都会有大约 5-10 分钟的延迟(这并不夸张)。我尝试运行,rm -rf *.png
但收到一条消息说“参数太多”(我花了 5 分钟才看到……)。我发现我仍然可以访问终端 tty1-tty5,但我不知道如何使用它们,我也可以尝试以 root 身份登录,但没有密码。
正如您所看到的,我有点麻烦了...有什么建议吗?
答案1
要绕过命令行长度的限制,请在命令提示符中尝试以下操作:
cd <directory with desktop>
printf "%s\0" *.png | xargs -0 rm
解释:
printf "%s\0"
打印每个后续参数,后跟一个空分隔符*.png
被 shell 扩展为一个非常长的参数列表,但是由于 bashprintf
被 shell 内置命令覆盖,因此列表大小的限制不适用。- 因此,所有 .png 名称都会打印到标准输出并通过管道传输到
xargs-0
(-0
告诉它期望空分隔符),并在将输入名称分组到参数列表中后xargs
进行调用rm
,长度足以适应限制。
如果您不使用,bash
那么有一个等效的技巧find ... | xargs rm
。