如何从linux服务器上使用FTP客户端复制超过5k的文件

时间:2015-10-07 13:42:49

标签: ftp server limit

我需要备份网站的FTP。该站点托管在Linux服务器上。问题是有一个文件夹超过5k文件。 Linux无法向我显示超过4998个文件,因此我无法复制这些文件,因为服务器不能给我超过4998个。 我无法删除这些文件以查看其他文件,因为该网站实际上是在线的。出于同样的原因,我无法将这些文件移到另一个目录中。

我该怎么办?我尝试使用外壳......但我不知道......我不确定使用这种方法。

2 个答案:

答案 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

这里是guide for that too