programing

curl 명령으로 특정 폴더에 파일 저장

subpage 2023. 4. 19. 23:00
반응형

curl 명령으로 특정 폴더에 파일 저장

셸 스크립트에서 특정 URL에서 파일을 다운로드하여 특정 폴더에 저장합니다.파일을 특정 폴더에 다운로드하기 위해 사용하는 CLI 플래그는 무엇입니까?curl명령어 또는 그 외의 방법으로 결과를 얻을 수 있습니다.

컬링 패스를 줄 수는 없지만 CD를 다운로드하여 CD로 되돌릴 수는 있습니다.

cd target/path && { curl -O URL ; cd -; }

또는 서브셸을 사용합니다.

(cd target/path && curl -O URL)

두 방법 모두 경로가 존재하는 경우에만 다운로드됩니다. -O는 리모트 파일명을 유지합니다.다운로드 후 원래 위치로 돌아갑니다.

파일명을 명시적으로 설정할 필요가 있는 경우는, small 을 사용할 수 있습니다.-o옵션:

curl -o target/path/filename URL

--output-dir옵션은 컬 7.73.0부터 사용할 수 있습니다.

curl --create-dirs -O --output-dir /tmp/receipes https://example.com/pancakes.jpg

curl(파일명을 지정하지 않고) 옵션도 없습니다만,wget디렉토리는 상대적일 수도 있고 절대적일 수도 있습니다또, 디렉토리가 존재하지 않는 경우는, 자동적으로 작성됩니다.

wget -P relative/dir "$url"

wget -P /absolute/dir "$url"

효과가 있습니다.

curl http://centos.mirror.constant.com/8-stream/isos/aarch64/CentOS-Stream-8-aarch64-20210916-boot.iso --output ~/Downloads/centos.iso 

여기서:

--output를 사용하면 배치할 파일 및 확장 파일의 경로와 이름을 설정할 수 있습니다.

리다이렉션 사용:

이것은, 드롭 하는 경우에 효과가 있습니다.curl지정된 경로에 파일을 다운로드했습니다.

curl https://download.test.com/test.zip > /tmp/test.zip

"test.zip"은 리다이렉트된 파일에 라벨을 붙이는 임의의 이름입니다.같은 이름일 수도 있고 다른 이름이 될 수도 있습니다.

사실 @oderibas 솔루션을 선호합니다만, 고객님의 디스트로가 컬 버전 7.73.0 이후를 지원할 때까지 이 문제를 해결할 수 있습니다.

Windows 의 powershell 의 경우, 상대 패스와 파일명을 다음에 추가할 수 있습니다.--output플래그:

curl -L  http://github.com/GorvGoyl/Notion-Boost-browser-extension/archive/master.zip --output build_firefox/master-repo.zip

여기서 build_filder는 상대 폴더입니다.

wget 사용

wget -P /your/absolut/path "https://jdbc.postgresql.org/download/postgresql-42.3.3.jar"

Windows의 경우 PowerShell에서는curl는 cmdlet의 에일리어스입니다.Invoke-WebRequest다음 구문이 작동합니다.

curl "url" -OutFile file_name.ext

예:

curl "https://airflow.apache.org/docs/apache-airflow/2.2.5/docker-compose.yaml" -OutFile docker-compose.yaml

출처 : https://krypted.com/windows-server/its-not-wget-or-curl-its-iwr-in-windows/

다음은 배치를 사용하여 URL에서 안전한 파일 이름을 만들고 tmp/라는 이름의 폴더에 저장하는 예입니다.Windows나 Linux Curl 버전에서는 이 옵션이 없는 것이 이상하다고 생각합니다.

@echo off
set url=%1%

for /r %%f in (%url%) do (
    set url=%%~nxf.txt
    curl --create-dirs -L -v -o tmp/%%~nxf.txt %url%
)

위의 배치 파일은 단일 입력, URL을 사용하여 URL에서 파일 이름을 만듭니다.파일 이름을 지정하지 않으면 tmp/로 저장됩니다.txt. 즉, 모든 것을 할 수 있는 것은 아니지만 Windows에서 작업을 수행할 수 있습니다.

언급URL : https://stackoverflow.com/questions/16362402/save-file-to-specific-folder-with-curl-command

반응형