Sådan downloader du alle filer i en mappe med CURL - Trin-for-trin guide

Hvordan kan alle filer i en specifik mappe downloades ved hjælp af CURL, når kommandoen "curl -LO http://example.com/" returnerer fejlen "curl: Remote file name has no length"?

For at downloade alle filer i en specifik mappe ved hjælp af CURL og undgå fejlen "curl: Remote file name has no length", kan du bruge et bash-script til at downloade hver fil individuelt eller overveje at bruge wget for en mere automatiseret løsning.

Sådan downloader du alle filer i en specifik mappe ved hjælp af CURL

Hvis du forsøger at downloade alle filer i en specifik mappe ved hjælp af CURL og får fejlen "curl: Remote file name has no length", kan du følge nedenstående trin for at løse problemet:

  1. Installer CURL:

    Sørg for, at CURL er installeret på dit system. Du kan installere det ved at bruge følgende kommandoer:

    • På Debian/Ubuntu: sudo apt-get install curl
    • På CentOS/RHEL: sudo yum install curl
    • På macOS: brew install curl
  2. Brug en loop til at downloade flere filer:

    Da CURL ikke direkte understøtter download af alle filer i en mappe, kan du bruge en loop i et script til at downloade hver fil individuelt. Her er et eksempel på et bash-script:

    #!/bin/bash
    URL="http://example.com/"
    FILES=("file1.txt" "file2.jpg" "file3.pdf")
    
    for FILE in "${FILES[@]}"; do
      curl -O "${URL}${FILE}"
    done
    

    Erstat file1.txt, file2.jpg, og file3.pdf med navnene på de filer, du vil downloade.

  3. Automatiser filnavne med wget:

    Hvis du har brug for at downloade mange filer og ikke kender deres navne på forhånd, kan wget være et bedre værktøj. Her er et eksempel på, hvordan du kan bruge wget til at downloade alle filer i en mappe:

    wget -r -np -nH --cut-dirs=1 -R "index.html*" http://example.com/path/to/directory/

    Forklaring af parametrene:

    • -r: Recursively download files.
    • -np: No parent, do not ascend to the parent directory.
    • -nH: No host directories.
    • --cut-dirs=1: Skip 1 directory level.
    • -R "index.html*": Reject index.html files.
  4. Brug en FTP-server:

    Hvis filerne er tilgængelige via FTP, kan du bruge CURL til at downloade alle filer i en mappe ved hjælp af følgende kommando:

    curl -O ftp://username:[email protected]/path/to/directory/*

    Erstat username og password med dine FTP-loginoplysninger.

Ved at følge disse trin kan du effektivt downloade alle filer i en specifik mappe ved hjælp af CURL eller alternative værktøjer som wget.