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

标签 linux ftp

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

test_20160125,test_20160222

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

ftp> rm *test_*

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

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

最佳答案

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

ftp> rmdir *test_*

但是,即使是上面的操作也可能会失败,因为客户端 rmdir 命令将被转换为 FTP RMD (Re M移动D目录)命令;许多 FTP 服务器通过调用 例如 rmdir(2) 函数来处理 RMD。某些 FTP 服务器不会RMD 参数作为 glob 模式处理,因此可能会尝试删除名为 exactly 的目录“test_ ”(大概不存在)。即使处理了 glob 模式, 尝试删除包含文件的目录也经常会失败;需要先删除目录下的文件。

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

ftp> mdelete test_*/*

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

ftp> rmdir test_20160125
ftp> rmdir test_20160222

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

希望这对您有所帮助!

关于linux - 如何使用命令删除FTP中的文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38071720/

相关文章:

linux - 仅当 ping 中断时 Bash 才继续

php - ftp_get 损坏音频文件

python - 使用正则表达式从 FTP 服务器下载文件

cocoa - 使用 NSTask 和 rsync 捕获所需的凭据

linux - bash:截断文件名,为重复项添加递增的数字

c - 为目标文件中的指令分配地址

php - 无法在网页上显示图像,图像路径存储在数据库中

python - 使用 Python 访问 FTP 服务器失败,错误为 "getaddrinfo"

javascript - 从 node.js 写入 fifo

linux - 如何在使用 gcsfuse 创建的 Linux 中卸载 Google Bucket