【问题标题】:How to use command to delete folders in FTP?如何使用命令删除FTP中的文件夹?
【发布时间】:2016-10-30 12:23:00
【问题描述】:

假设 FTP 站点上有一些文件夹:

test_20160125,test_20160222

我使用命令删除FTP上的特定文件夹:

ftp> rm *test_*

550 The filename, directory name, or volume label syntax is incorrect.

如何使用 FTP 命令删除文件夹?

【问题讨论】:

标签: linux ftp


【解决方案1】:

使用 lftp 协议,也使用rm -r where r 选项递归删除文件和目录。

$ lftp -u <user>,<pass> <server> 
lftp> rm -r <directory>

【讨论】:

  • 我使用 lftp 并使用 cd 更改远程目录,但我收到消息:“cd: Access failed: 550 Access is denied”。如何使用 cd 更改目录?
  • lcd 可以更改本地目录但不能更改远程目录。有什么方法可以正常更改远程目录而不会拒绝访问?
  • 参考链接:ducea.com/2006/07/27/…
【解决方案2】:

ftp(1) 命令行客户端将其内置的rm 命令转换为 FTP DELE 命令,大多数 FTP 服务器通过调用处理DELEDELEte 文件)删除一个文件的函数(egunlink(2)在Unix上),而不是一个目录。因此,您可以尝试:

ftp> rmdir *test_*

但是,即使上述方法也可能会失败,因为客户端 rmdir 命令将被转换为 FTP RMD (ReMove D目录)命令;许多 FTP 服务器通过调用 e.g. rmdir(2) 函数来处理 RMD。某些 FTP 服务器RMD 参数作为全局模式处理,因此可能会尝试删除名为exactlytest_”的目录(大概不存在)。即使处理了全局模式,尝试删除包含文件的目录通常也会失败;需要先删除目录中的文件。

因此您可能需要删除这些目录中的文件,然后删除这些目录本身:

ftp> mdelete test_*/*

客户端mdelete 命令应该在幕后为您进行必要的全局/模式匹配,并删除匹配模式的文件。然后您可以使用以下命令删除这些目录:

ftp> rmdir test_20160125
ftp> rmdir test_20160222

由于这种性质的功能通常在客户端中完成,因此使用更复杂的 FTP 客户端(如@User123 所建议的lftp)会容易得多。

希望这会有所帮助!

【讨论】:

    【解决方案3】:
    猜你喜欢
    • 1970-01-01
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-26
    • 1970-01-01
    • 2011-12-11
    • 2012-01-02
    相关资源
    最近更新 更多