Fazendo o download em uma pasta do sistema com nome alternativo usando o wget [RESOLVIDO]

1. Fazendo o download em uma pasta do sistema com nome alternativo usando o wget [RESOLVIDO]

Jean César
dark777

(usa Linux Mint)

Enviado em 14/05/2023 - 21:30h

Galera o navegador que eu estava utilizando e atualizando pelo repositório do mint simplesmente nao executava algumas coisas do HTML entao tive que instalr manualmente porem eu fiz um script pra baixar o navegador mas queria fazer ele baixar na pasta Downloads com o nome alternativo passado a URL.

O Script é este abaixo:

#!/bin/bash

## pt-BR, en-US ....
LINGUAGEM="${1}"

[ -z "${LINGUAGEM}" ] && LINGUAGEM="pt-BR"

if [ -z "${ARCH}" ]; then

case "$(uname -m)" in
x86_64)
ARCH=64
;; #Downloads for arch x86_64

i?86 | x86)
ARCH=""
;; #Downloads for arch x86
esac

case $(uname -s) in

Linux)
OS="linux${ARCH}"
;;

darwin)
OS="osx"
;;
esac
fi

DOWNLOADS=$HOME/Downloads

if [[ "${OS}" == "linux${ARCH}" ]]; then

## Pegando o link do navegador para removermos
UNLINK=$(ls -l {/usr/bin,/bin}/firefox | grep "firefox/firefox" | cut -f9 -d" ")

## Verificando o local da instalação através do link que foi criado de alguma instalação manual
UNINSTALL=$(ls -l {/usr/bin,/bin}/firefox | grep "firefox/firefox" | cut -f11 -d" ")

## Aqui baixa o arquivo "firefox.tar.bz2" onde estiver executando o script

## https://download.mozilla.org/?product=firefox-latest&os=linux64&lang=pt-BR
wget --content-disposition "https://download.mozilla.org/?product=firefox-latest&os=${OS}&lang=${LINGUAGEM}" -O firefox.tar.bz2

#sudo apt autoremove firefox -y

## Remove os links
#sudo rm -rf ${UNLINK}

## Remove do local instalado manualmente
#sudo rm -rf ${UNINSTALL}

## Instala em /opt

#sudo tar -jxf $DOWNLOADS/firefox.tar.bz2 -C /opt/

#sudo ln -s /opt/firefox/firefox /usr/bin/firefox

#echo -e '[Desktop Entry] \nVersion=1.0 \nEncoding=UTF-8 \nName=Firefox Web Browser \nComment=Navegador Web \nExec=/usr/bin/firefox %u \nTerminal=false\nX-MultipleArgs=false\nIcon=firefox\nType=Application \nCategories=GNOME;GTK;Network;WebBrowser; \nStartupNotify=true \nActions=new-window;new-private-window;' | sudo tee /usr/share/applications/firefox.desktop

fi



Como eu faço ele baixar na pasta Download com um nome alternativo?
Tentei fazer isso abaixo mas ele não baixa na pasta Download com o nome passado a "-O"
wget -P $DOWNLOADS --content-disposition "https://download.mozilla.org/?product=firefox-latest&os=${OS}&lang=${LINGUAGEM}" -O firefox.tar.bz2

Tentei fazer:

wget -OP $DOWNLOADS/firefox.tar.bz2 --content-disposition "https://download.mozilla.org/?product=firefox-latest&os=${OS}&lang=${LINGUAGEM}"

mas não obtive sucesso.
wiki.anon


  


2. MELHOR RESPOSTA

Adriano Siqueira
adrisiq

(usa KDE Neon)

Enviado em 15/05/2023 - 11:06h

Veja se esse rascunho te ajuda em alguma coisa.

#!/usr/bin/env bash

function criarUrl() {
local _arquitetura="${1}"
local _idioma="${2}"

echo "https://download.mozilla.org/?product=firefox-latest-ssl&os=linux${_arquitetura}&lang=${_idioma}"
}

function download() {
local _destino="${1}"
local _nome="${2}"
local _arquitetura="${3}"
local _idioma="${4}"

local _url="$(criarUrl "${_arquitetura}" "${_idioma}")"
local _pacote="${_destino}/${_nome}"

wget --output-document="${_pacote}" "${_url}"

echo "${_pacote}"
}

function instalar() {
local _pacote="${1}"
}

function pegarArquitetura() {
uname --machine | cut --delimiter='_' --fields='2'
}

function pegarIdioma() {
# Por enquanto retorna apenas o portugues brasileiro, mas pode ser
# modificado para incluir algum sistema de aquisicao automatica
# do idioma.
echo "pt-BR"
}

function pegarNomeDoUsuario() {
local _user

while [[ -z "${_user}" ]]; do
_user="$(who | head -1 | awk -F ' ' '{printf $1}')"
[[ -z "${_user}" ]] && sleep 1
done

echo "${_user}"
}

function executar() {
local _destino="/home/$(pegarNomeDoUsuario)/Downloads"
local _nome="firefox.tar.bz2"
local _arquitetura="$(pegarArquitetura)"
local _idioma="$(pegarIdioma)"

echo "[ I ]: Baixando o '${_nome}' na pasta '${_destino}'."

local _pacote=
if ! _pacote="$(download "${_destino}" "${_nome}" "${_arquitetura}" "${_idioma}")"; then
echo "[ E ]: Falha ao baixar o pacote."
return 1
fi

echo "[ I ]: Instalando o pacote '${_pacote}'."

if ! instalar "${_pacote}"; then
echo "[ E ]: Falha ao instalar o pacote '${_pacote}'."
return 1
fi

echo "[ I ]: Instalacao concluida com sucesso."
return 0
}

executar


Ainda precisa implementar a função 'instalar', mas está funcionando até a parte do download.

3. Re: Fazendo o download em uma pasta do sistema com nome alternativo usando o wget [RESOLVIDO]

Jean César
dark777

(usa Linux Mint)

Enviado em 15/05/2023 - 19:40h


adrisiq escreveu:

Veja se esse rascunho te ajuda em alguma coisa.

#!/usr/bin/env bash

function criarUrl() {
local _arquitetura="${1}"
local _idioma="${2}"

echo "https://download.mozilla.org/?product=firefox-latest-ssl&os=linux${_arquitetura}&lang=${_idioma}"
}

function download() {
local _destino="${1}"
local _nome="${2}"
local _arquitetura="${3}"
local _idioma="${4}"

local _url="$(criarUrl "${_arquitetura}" "${_idioma}")"
local _pacote="${_destino}/${_nome}"

wget --output-document="${_pacote}" "${_url}"

echo "${_pacote}"
}

function instalar() {
local _pacote="${1}"
}

function pegarArquitetura() {
uname --machine | cut --delimiter='_' --fields='2'
}

function pegarIdioma() {
# Por enquanto retorna apenas o portugues brasileiro, mas pode ser
# modificado para incluir algum sistema de aquisicao automatica
# do idioma.
echo "pt-BR"
}

function pegarNomeDoUsuario() {
local _user

while [[ -z "${_user}" ]]; do
_user="$(who | head -1 | awk -F ' ' '{printf $1}')"
[[ -z "${_user}" ]] && sleep 1
done

echo "${_user}"
}

function executar() {
local _destino="/home/$(pegarNomeDoUsuario)/Downloads"
local _nome="firefox.tar.bz2"
local _arquitetura="$(pegarArquitetura)"
local _idioma="$(pegarIdioma)"

echo "[ I ]: Baixando o '${_nome}' na pasta '${_destino}'."

local _pacote=
if ! _pacote="$(download "${_destino}" "${_nome}" "${_arquitetura}" "${_idioma}")"; then
echo "[ E ]: Falha ao baixar o pacote."
return 1
fi

echo "[ I ]: Instalando o pacote '${_pacote}'."

if ! instalar "${_pacote}"; then
echo "[ E ]: Falha ao instalar o pacote '${_pacote}'."
return 1
fi

echo "[ I ]: Instalacao concluida com sucesso."
return 0
}

executar


Ainda precisa implementar a função 'instalar', mas está funcionando até a parte do download.


Com base no seu eu fiz isso:

#!/bin/bash
# Programa para baixar ultima versao do firefox utilizando
# o esquema de URL https://download-installer.cdn.mozilla.net/pub/firefox/releases/latest/README.txt
#
# SISTEMA_OPERACIONAL = win (default), win64, osx, linux e linux64
#
# IDIOMA = pt-BR (default), en-US, fr, es-AR etc
# TIPO = firefox-beta-latest (default) firefox-latest
#
# exemplo 1: baixar versao stable para linux 64 bits, em ingles:
# $ baixafirefox en-US
#

## pt-BR, en-US ..
IDIOMA=${1}

DESTINO="${HOME}/Downloads"

PACOTE="${DESTINO}/firefox.tar.bz2"

## Pega o idioma do SO
function idioma(){

echo "$(locale | grep "^LANG=" | cut -f1 -d'.' | sed 's/_/-/g;s/LANG=//g;')"

}

[[ -z "${IDIOMA}" ]] && IDIOMA="$(idioma)"

function osArch() {

case "$(uname -m)" in

x86_64)
ARCHT=64
;; #Downloads for arch x86_64

i?86 | x86)
ARCHT=""
;; #Downloads for arch x86

esac

echo "linux${ARCHT}"
}

## https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=pt-BR
wget --output-document="${PACOTE}" --content-disposition "https://download.mozilla.org/?product=firefox-latest-ssl&os=$(osArch)&lang=${IDIOMA}"

## Verifica se o comprimento é maior que zero
if [[ $? -eq 0 && ! -s "${PACOTE}" ]]; then

echo -e "\n\033[1;31mDownloading \033[1;32m${PACOTE} \033[1;31mfailed...\033[0m\n\n"
exit

else

## Se o SO usa o apt
[[ $(type -P apt 2>/dev/null) ]] && sudo apt autoremove firefox -y

## Verificando o local de instalações manual.
INSTALED="$(ls -t /opt | grep -m 1 'firefox' | sed 's/\///g;')"

## Pegando o link do navegador para removermos
UNLINK="$(ls -l {/usr/bin,/bin}/firefox | grep "/opt/${INSTALED}/firefox" | cut -f9 -d' ')"

## Remove os links e versões antigas
[[ -n ${INSTALED} && -n ${UNLINK} ]] && sudo rm -rf ${UNLINK} /opt/${INSTALED}

## Instala em /opt
sudo tar -jxf ${PACOTE} -C /opt/

## Pega o nome da pasta do navegador descompactado em /opt
FIREFOX="$(ls -t /opt | grep -m 1 'firefox' | sed 's/\///g;')"

sudo ln -vs /opt/${FIREFOX} /usr/bin/firefox

echo -e "[Desktop Entry] \nVersion=1.0 \nEncoding=UTF-8 \nName=Firefox Web Browser \nComment=Navegador Web \nExec=/usr/bin/firefox %u \nTerminal=false\nX-MultipleArgs=false\nIcon=firefox\nType=Application \nCategories=GNOME;GTK;Network;WebBrowser; \nStartupNotify=true \nActions=new-window;new-private-window;" | sudo tee /usr/share/applications/firefox.desktop
fi


wiki.anon






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts