Descàrrega simultània de fitxers

Volem descarregar alhora tres fitxers ubicats al portal disk.sample.cat. Els fitxers es troben a les URLs:

Utilitzeu la comanda curl per descarregar un fitxer. La sintaxi de la comanda seria «curl -O url», on url cal substituir-lo per la url que volem.

  1. Feu una comanda que faci la descàrrega al mateix temps dels tres fitxers.

  2. Amb la comanda predefinida de bash, time poden esbrinar el temps que triga una comanda en executar-se entre d’altres temps (temps d’ús de la CPU, temps del sistema operatiu). La sintaxi és «time comanda». On comanda és la de l’apartat anterior dins d’un subshell. Assegureu-vos que la comanda acaba amb un wait per tal de poder comptar el temps correctament.

    Escriviu dues línies de comandes per poder comparar la millora de temps de fer-ho alhora (comanda de l’apartat a) amb el temps d’una comanda que ho faci seqüencialment.

Solució

  1. (curl -O https://disk.sample.cat/samples/pdf/sample-a4.pdf & \
     curl -O https://disk.sample.cat/samples/pdf/sample-images-fit.pdf & \
     curl -O https://disk.sample.cat/samples/pdf/sample-multilingual-text.pdf) ; wait
    
  2. url1=https://disk.sample.cat/samples/pdf/sample-a4.pdf
    url2=https://disk.sample.cat/samples/pdf/sample-images-fit.pdf
    url3=https://disk.sample.cat/samples/pdf/sample-multilingual-text.pdf
    time ((curl -O $url1 & curl -O $url2 & curl -O $url3); wait)
    time (curl -O $url1 ; curl -O $url2 ; curl -O $url3; wait)
    

    Per claredat, hem posat les urls amb variables i així veure millor la composició de comandes en una línia.