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

Luk*_*e.C 3 linux ftp

假设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)


Cas*_*lia 5

ftp(1)命令行客户端转换其内置的rm命令到FTPDELE命令,大多数FTP服务器手柄DELEDELE通过调用删除功能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 建议的 )会容易得多。

希望这可以帮助!