【问题标题】:FTP Delete non empty directoryFTP 删除非空目录
【发布时间】:2012-05-31 17:55:45
【问题描述】:

我已连接到 Unix 服务器,我正在尝试通过 FTP 删除目录dir,其中包含多个文件。如果我使用

ftp> delete dir/*

我明白了

550 通配符不明确。

当我使用时

ftp> prompt off
Interactive mode off.
ftp> mdelete dir/*

我还是明白了

550 通配符不明确。

当我尝试时

ftp> glob
Globbing on.
ftp> mdelete dir

每个文件都会提示我。

如何在不提示每个文件的情况下轻松删除/清空并删除目录?

【问题讨论】:

    标签: unix ftp


    【解决方案1】:

    我让它分两步工作,在一个访问受限的服务器上,没有 SFTP,只有通过命令行的 FTP。

    像这样:

    mdelete folder_name/*
    rmdir folder_name
    

    【讨论】:

    • 仅当folder_name中没有子文件夹时才这样做
    【解决方案2】:

    如果您在服务器上隐藏了文件或文件夹(例如 .folder),则必须将 lftp 列表选项设置为“-a”。

    所以这对我有用:

    $ lftp -u user,pass server
    > set ftp:list-options -a
    > cd /folder/to/be/empty/
    /folder/to/be/empty/> glob -a rm -r *
    

    【讨论】:

    • 另见 this answer 关于 Serverfault。和thislftp -u login,password ftp_server_location -e "rm -r directory_to_delete; exit"
    • 我最喜欢的答案,lftp 要容易得多。
    • 太糟糕了lftp 没有将文件夹中的所有文件作为一个请求删除。它似乎为每个文件做一个往返,所以它很慢。
    • @joeytwiddle 这不是lftp 的错。这是 FTP 协议的限制。
    【解决方案3】:

    使用lftp登录你的服务器,这支持rm -r命令。

    lftp user, password server
    

    然后:

    rm -r directory
    

    -r 代表“递归”。

    信息:

    【讨论】:

    • 所以这意味着没有办法用 FTP 做到这一点?
    【解决方案4】:

    $ ftp -i ...

    将关闭 mdel 上的提示,这是您想要的。它不能在 ftp 中完成。

    【讨论】:

    • 你刚刚用那个'-i'救了我的命
    【解决方案5】:

    rmdir 目录名

    但是这个目录必须在当前目录中。

    备忘单:http://www.cs.colostate.edu/helpdocs/ftp.html

    【讨论】:

    • rmdir -f <directory> 你可以使用 -f 强制删除
    【解决方案6】:

    我正在使用 Filezilla,它会递归删除文件夹。我相信 ftp 没有递归删除文件夹的命令。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-05
      • 2016-10-16
      • 2010-12-11
      • 1970-01-01
      • 2010-12-06
      • 1970-01-01
      • 2010-12-28
      • 1970-01-01
      相关资源
      最近更新 更多