我需要备份网站的FTP。该站点托管在Linux服务器上。问题是有一个文件夹超过5k文件。 Linux无法向我显示超过4998个文件,因此我无法复制这些文件,因为服务器不能给我超过4998个。 我无法删除这些文件以查看其他文件,因为该网站实际上是在线的。出于同样的原因,我无法将这些文件移到另一个目录中。
我该怎么办?我尝试使用外壳......但我不知道......我不确定使用这种方法。
答案 0 :(得分:1)
我得到了自己答案的解决方案
<?php
$rootPath = realpath('wp-content/uploads/2014/07');
// Initialize archive object
$zip = new ZipArchive();
$zip->open('dio.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE);
// Create recursive directory iterator
/** @var SplFileInfo[] $files */
$files = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($rootPath),
RecursiveIteratorIterator::LEAVES_ONLY
);
foreach ($files as $name => $file)
{
// Skip directories (they would be added automatically)
if (!$file->isDir())
{
// Get real and relative path for current file
$filePath = $file->getRealPath();
$relativePath = substr($filePath, strlen($rootPath) + 1);
// Add current file to archive
$zip->addFile($filePath, $relativePath);
}
}
// Zip archive will be created only after closing object
$zip->close();
答案 1 :(得分:0)
您可以通过命令行,本指南shows you how执行此操作。似乎mget(ftp命令)不建议用于递归调用(子文件夹及其内容),因此也可以使用wget se this。
我还想将包含许多文件的文件夹压缩成一个文件夹,以便在上传和下载时轻松进行监督。使用
zip -r myfiles.zip myfiles