在我的服务器上,我一直使用的脚本之一一直在根目录下创建空白文件,但我已经有 6 个多月没有注意到了,现在总共创建了 500,000 多个文件。
我无法通过控制面板访问该目录,因为文件太多,我只能通过 ftp 访问。即使使用 ftp,ftp 也会将每个文件截断 8000 个。所以我不得不继续删除每个文件 8000 个。
我试图要求我的主机帮我删除它,但他们说不能,因为这是责任问题。
所以我想知道如何通过 ftp 删除所有这 500,000 个文件?由于它是共享主机,我也没有 SSH 访问权限。托管提供商说我可以申请 SSH 访问权限,但需要验证,而且他们的办公室要到下周才开放。所以我现在只能使用 ftp。
因此请告诉我如何通过 ftp 删除大量文件?
如果我可以获得 ssh 访问权限,请告诉我如何以有效的方式通过 ssh 删除文件?
文件名是这样的
- 关闭cp.139619
- 关闭cp.139619.1
- 关闭cp.139620
- 关闭cp.139620.1
答案1
作为山姆指出我会将一个 PHP 或 Perl 文件放在您的网站空间中,从而从目录中删除文件。
确保除了您之外的任何人都无法轻易找到该脚本,并确保其中的值不能通过 POST 或 GET 被覆盖。
答案2
删除这些文件可能会花很长时间,在此期间预计 I/O 很高。
本文中有很多关于如何删除大量文件的有用建议rm-on-a-directory-with-millions-of-files
您的速度可能不是数百万,但它的速度会明显变慢。
答案3
最后,我使用 ftp 命令行得到了它。我从窗口中使用了“cmd”。
首先我需要关闭提示
prompt
然后使用以下命令删除
mdelete closecp.*
答案4
如果你可以 ssh 到该盒子,你可以运行如下命令:
find /path/to/files -maxdepth 1 -name "closecp.*" -delete
这将在目录 /path/to/file 中查找所有名称格式为“closecp.*”(如您所指出的)的文件(请根据您的情况进行更改)。“-maxdepth 1”选项将阻止“find”命令查找子目录,而只查找 /path/to/file。