Existe-t-il un moyen d'obtenir la taille d'un fichier distant tel que
http://api.twitter.com/1/statuses/public_timeline.json
dans le shell script ?
Existe-t-il un moyen d'obtenir la taille d'un fichier distant tel que
http://api.twitter.com/1/statuses/public_timeline.json
dans le shell script ?
Pour moi, combiner tout ce qui précède fonctionne :
URL="http://cdimage.debian.org/debian-cd/current/i386/iso-dvd/debian-9.5.0-i386-DVD-1.iso"
curl --head --silent --location "$URL" | grep -i "content-length:" | tr -d " \t" | cut -d ':' -f 2
Cela renvoie uniquement la longueur du contenu en octets :
3767500800
J'ai une fonction shell, basée sur Réponse de codaddict qui donne la taille d'un fichier distant dans un format lisible par l'homme :
remote_file_size () {
printf "%q" "$*" |
xargs curl -sI |
grep Content-Length |
awk '{print $2}' |
tr -d '\040\011\012\015' |
gnumfmt --to=iec-i --suffix=B # the `g' prefix on `numfmt' is only for systems
# ^ # that lack the GNU coreutils by default, i.e.,
# | # non-Linux systems
# |
# | # in other words, if you're on Linux, remove this
# | # letter `g'; if you're on BSD or Mac, install the GNU coreutils
} # | |
# +----------------------------------------+
$ curl -O -w 'We downloaded %{size_download} bytes\n'
https://cmake.org/files/v3.8/cmake-3.8.2.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 7328k 100 7328k 0 0 244k 0 0:00:29 0:00:29 --:--:-- 365k
We downloaded 7504706 bytes
À des fins d'automatisation, il vous suffit d'ajouter la commande à votre fichier script.
J'utilise comme ça ([Cc]ontent-[Ll]ength:)
parce que le serveur donne plusieurs caractères Content-Length dans l'en-tête de réponse.
curl -sI "http://someserver.com/hls/125454.ts" | grep [Cc]ontent-[Ll]ength: | awk '{ print $2 }'
Accept-Ranges: bytes Access-Control-Expose-Headers: Date, Server, Content-Type, Content-Length Server: WowzaStreamingEngine/4.5.0 Cache-Control: no-cache Access-Control-Allow-Origin: * Access-Control-Allow-Credentials: true Access-Control-Allow-Methods: OPTIONS, GET, POST, HEAD Access-Control-Allow-Headers: Content-Type, User-Agent, If-Modified-Since, Cache-Control, Range Date: Tue, 10 Jan 2017 01:56:08 GMT Content-Type: video/MP2T Content-Length: 666460
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
0 votes
Quelques exemples dans cette page, en voici un pour le shell Windows script (qui peut être doublé en bash script avec quelques modifications) superuser.com/a/1007898/429721
1 votes
Et si
wget --spider
?