다른 폴더, 다른 파일 이름 및 동일한 확장자에 저장하려면 wget이 필요하지만 다운로드하기 전에 파일 이름이 없습니다.
예를 들어 다음과 같은 경우가 있다고 가정해 보겠습니다.
http://ge.tt/api/1/files/someFile/0/blob?download
아이디로 다운받아야 하는데,"fj39ejd"폴더에 downloads
.
다음 위치에 저장하는 가장 좋은 방법은 무엇입니까?
/path/to/downloads/fj39ejd.[extension it had before downloading]
이를 달성하는 방법에 대한 제안이 있으십니까?
답변1
로컬 파일의 이름을 서버에서 선택한 이름으로 지정하려면 다음을 사용하세요.wget --content-disposition --trust-server-names
.
서버가 선택한 확장명에 로컬로 선택된 이름을 지정하려면 나중에 이름을 바꿔야 합니다. 가장 쉬운 방법은 빈 디렉터리를 만들고, wget
해당 디렉터리를 호출하고, 만든 파일의 이름을 원하는 이름으로 바꾸는 것입니다.
dir="$(TMPDIR=$PWD mktemp -d)" &&
(cd "$dir" && wget --content-disposition --trust-server-names 'http://ge.tt/api/1/files/someFile/0/blob?download') &&
set "$dir/"* &&
mv "$1" "fj39ejd.${1#"$dir"/*.}" &&
rmdir "$dir"
답변2
나는 실제로 두 가지 가능한 접근 방식을 생각해 냈습니다.
a) " 폴더에 저장할 수 있습니다.fj39ejd"는 다음과 같습니다:
downloads/fj39ejd/theFileNameThatWasBeing.Downloaded
또는 b) tmp
"를 포함하는 파일이 포함된 경우 while 루프를 검사할 폴더를 만들 수 있습니다.fj39ejd"그런 다음 explode
확장을 구해야 합니다. 하지만 비용이 조금 들고 연결 시간이 초과될 수 있습니다.