假设FTP站点上有一些文件夹:
test_20160125,test_20160222
Run Code Online (Sandbox Code Playgroud)
我使用命令删除 FTP 上的特定文件夹:
ftp> rm *test_*
550 The filename, directory name, or volume label syntax is incorrect.
Run Code Online (Sandbox Code Playgroud)
如何使用FTP命令删除文件夹?
小智 5
使用lftp协议,也使用rm -rwherer选项递归删除文件和目录。
$ lftp -u <user>,<pass> <server>
lftp> rm -r <directory>
Run Code Online (Sandbox Code Playgroud)
在ftp(1)命令行客户端转换其内置的rm命令到FTPDELE命令,大多数FTP服务器手柄DELE(DELE通过调用删除功能TE文件)的文件(例如, unlink(2)在Unix上),而不是一个目录。因此,您可以尝试:
ftp> rmdir *test_*
Run Code Online (Sandbox Code Playgroud)
然而,即使在上述可能会失败,因为客户端rmdir命令将被转换到FTP RMD(ř Ë中号OVE d irectory)命令; 许多FTP服务器处理RMD调用,例如该rmdir(2)功能。某些 FTP 服务器不会将RMD参数作为 glob 模式处理,因此可能会尝试删除完全命名为“ test_ ”的目录(可能不存在)。而且即使glob模式被处理,试图删除含有文件经常会失败目录; 需要先删除目录中的文件。
因此,您可能需要删除这些目录中的文件,然后删除目录本身:
ftp> mdelete test_*/*
Run Code Online (Sandbox Code Playgroud)
客户端mdelete命令应该在幕后为您进行必要的全局/模式匹配,并删除与模式匹配的文件。然后您可以使用以下方法删除这些目录:
ftp> rmdir test_20160125
ftp> rmdir test_20160222
Run Code Online (Sandbox Code Playgroud)
由于这种性质的功能通常在客户端中完成,因此使用更复杂的 FTP 客户端(如lftp@User123 建议的 )会容易得多。
希望这可以帮助!