The progress meter is inhibited if curl deems that there is output going to
    the terminal, as then would the progress meter interfere with that output and
    just mess up what gets displayed. A user can also forcibly switch off the
    progress meter with the option, which tells curl to hush.

    If you invoke curl and don’t get the progress meter, make sure your output is
    directed somewhere other than the terminal.

    At times when curl is asked to transfer data, it can’t figure out the total
    size of the requested operation and that then subsequently makes the progress
    meter contain fewer details and it cannot, for example, make forecasts for
    transfer times, etc.

    The progress meter displays bytes and bytes per second.

    The times are displayed using HSS for hours, minutes and seconds.

    Progress meter legend

    The progress meter exists to show a user that something actually is
    happening. The different fields in the output have the following meaning:

    Title Meaning
    % Percentage completed of the whole transfer
    Total Total size of the whole expected transfer (if known)
    % Percentage completed of the download
    Received Currently downloaded number of bytes
    % Percentage completed of the upload
    Xferd Currently uploaded number of bytes
    Average Speed Dload Average transfer speed of the entire download so far, in number of bytes per second
    Average Speed Upload Average transfer speed of the entire upload so far, in number of bytes per second
    Time Total Expected time to complete the operation, in HH:MM:SS notation for hours, minutes and seconds
    Time Current Time passed since the start of the transfer, in HHSS notation for hours, minutes and seconds
    Time Left Expected time left to completion, in HH:MM:SS notation for hours, minutes and seconds
    Curr.Speed Average transfer speed over the last 5 seconds (the first 5 seconds of a transfer is based on less time, of course) in number of bytes per second