如何在 WinSCP 中压缩、下载和删除(ZDD)文件?
例如,您的本地目录是桌面,而您的远程目录(服务器计算机中的目录)是,/var/www/html
并且您想要压缩并下载特定目录或文件,然后您希望在下载完成后立即将其删除。
为了进一步解释,在 Linux 中我可以这样做,例如:
(
zip -r /var/www/html/dr.zip /var/www/html
scp /var/www/html/dr.zip USER@IP:/location
rm /var/www/html/dr.zip
)
我需要类似的东西用于 WinSCP,但我知道WinSCP下载机制应该使用,并且它与 Nixscp
实用程序不同。
我的问题:
您知道如何使用 WinSCP 实现这一点吗?
答案1
无法通过任何文件传输协议(SFTP、FTP、SCP 或 WebDAV)压缩文件。这就是为什么 WinSCP 中没有此功能,因为它无法可靠地实现。
不过,如果你有服务器的 shell 访问权限,你可以使用 shell 命令来压缩文件。实际上,这就是焦油/GZip 自定义命令做。
如果你想一次性获得(压缩并下载),现在有一个WinSCP 扩展它的作用是:
将远程文件存档到 ZIP 存档中,下载并可选择提取。
答案2
在自定义命令下,现在有一个选项可以“存档并下载”文件或目录。您可以使用该命令并在下载后删除该文件。
如果你经常这样做,并且确实希望在下载后自动删除,你可以修改 Powershell 脚本以在下载后删除文件。我将针对 WinSCP 版本 5.17.6 进行解释
在编辑器中打开此文件:c:\Program Files (x86)\WinSCP\Extensions\ArchiveDownload.WinSCPextension.ps1
第 151 行应包含:
$session.GetFiles($source, $target, $True).Check()
在我上面提到的行后面添加以下几行:
$commands = "rm -rf $filesArgs"
$result = $session.ExecuteCommand($commands)
$result.Check()