Wget의 파일 이름은 다르지만 확장자는 동일합니다.

Wget의 파일 이름은 다르지만 확장자는 동일합니다.

다른 폴더, 다른 파일 이름 및 동일한 확장자에 저장하려면 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확장을 구해야 합니다. 하지만 비용이 조금 들고 연결 시간이 초과될 수 있습니다.

관련 정보