curl 명령을 사용하여 파일을 특정 폴더에 저장


182

쉘 스크립트에서 일부 URL에서 파일을 다운로드하여 특정 폴더에 저장하려고합니다. curl명령 을 사용하여 파일을 특정 폴더로 다운로드하는 데 사용해야하는 특정 CLI 플래그는 무엇입니까 ?


bash 프로그래밍이 프로그래밍중인 것 같습니다 ...
rjurney

답변:


281

나는 당신이 컬을 할 수있는 길을 줄 수는 없다고 생각하지만, 당신은 CD를 다운로드 할 수 있습니다.

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

또는 서브 쉘을 사용하십시오.

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

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

파일 이름을 명시 적으로 설정해야하는 경우 작은 -o옵션을 사용할 수 있습니다 .

curl -o target/path/filename URL

2
curl -LOk basename /packages" github.com/ziyaddin/xampp/archive/master.zip " 명령이 있습니다. 그러나 그것은 그 잘못된 파일 이름을 말합니다->basename /packages
Ziyaddin Sadigov

10
다음과 같이 서브 쉘을 사용할 수도 있습니다.(cd target/path; curl -O URL)
Ehtesh Choudhury

9
둘의 차이점은 무엇입니까? 첫 번째 CD는 디렉토리에 들어가서 파일을 다운로드 한 다음 cd를 출력합니다. 두 번째는 현재 디렉토리에 머무르고 파일을 특정 위치로 말립니다. 두 번째는 더 단순 해 보입니다.
Henry Zhu

9
@HenryZhu 첫 번째 파일 이름은 서버의 파일 이름에서 파생됩니다. 두 번째로 다운로드 한 컨텐츠의 이름을 제공 한 이름으로 변경합니다.
turtlemonvh

4
디렉토리를 지정하는 옵션을 원하지만 서버의 파일 이름을 사용하십시오. cd약간 우아하지는 않지만 사용 하는 것이 현재 가장 좋은 옵션 인 것 같습니다.
StockB

4

curl파일 이름을 지정하지 않고 옵션을 사용할 수는 없습니다 wget. 디렉토리는 상대적이거나 절대적 일 수 있습니다. 또한 디렉토리가 없으면 자동으로 작성됩니다.

wget -P relative/dir "$url"

wget -P /absolute/dir "$url"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.