首页 文章

Bash脚本:通过FTP获取文件夹大小

提问于
浏览
1

我经常搜索并搜索了很多,但我没有找到任何东西......

我在linux上使用bash ...

我必须从ftp服务器下载某个文件夹(我知道ftp已被弃用,现在不能使用ftps或sftp,因为我在本地网络中) .

我想对下载的文件夹进行一种完整性检查,该文件夹有很多子文件夹和文件,所以我选择比较文件夹大小作为测试 .

我正在通过wget下载,但我的问题是...如何在下载之前检查文件夹大小,以便我可以将大小存储在文件中,然后与下载的文件进行比较?在ftp中,所以......

我试着简单地卷曲到父目录,但那里没有大小信息......

谢谢您的帮助!!

3 回答

  • 0

    它主要取决于您的 ftp 客户端和您的 ftp 服务器可以执行的操作 . 有些我知道,默认 ls 完成了这项工作,他们甚至有一个 size 命令:

    ftp> help size
    size           show size of remote file
    ftp> size foo
    213 305
    ftp> ls foo
    200 PORT command successful.
    150 Opening ASCII mode data connection for file list
    -rw-r--r--   1 foo bar      305 Aug  1  2013 foo
    226 Transfer complete.
    
  • 0

    您无法通过协议FTP检查文件夹大小 . 尝试通过curlftpfs(如果可能)连接主服务器上的远程文件夹 .

  • 0

    wget 将以递归方式逐个下载所有目录内容 . 有可能使用ssh 's no way to determine the size of an entire directory using ftp. Though it' .

    我建议在您的计算机上安装ssh服务器,获得访问权限后,您可以使用以下命令获取所需目录的大小:

    du -h desired_directory | tail -n 1
    

    我不建议使用此方法,获取远程内容的哈希校验和并将其与下载的内容进行比较更为可靠 . 它更可靠,许多下载客户端已经使用它来检查文件的完整性 .

相关问题