Compartilhe arquivos do terminal Linux com Transfer.sh: Guia completo!

Foto do autor

By luis

Nos dias de hoje, a troca de arquivos tornou-se incrivelmente simples. Com serviços como Dropbox, Google Drive e OneDrive, mover dados entre diferentes locais é um processo rápido e eficiente. No entanto, essa agilidade pode não se aplicar quando se utiliza o terminal. Frequentemente, usuários do terminal ainda recorrem a métodos como SFTP, que podem ser considerados ultrapassados. Apresentamos o TransferirSH, uma ferramenta projetada especificamente para facilitar o envio e compartilhamento de arquivos diretamente do terminal Linux.

ALERTA: Um tutorial em vídeo está disponível ao final deste artigo.

Utilização Manual do Transfer.sh

O Transfer.sh disponibiliza uma interface web para upload e compartilhamento de arquivos, acessível através do navegador. Além disso, a ferramenta integra-se perfeitamente com a linha de comando, permitindo o compartilhamento direto pelo terminal. Para realizar essa operação no Linux, é necessário ter o Curl instalado.

Ubuntu

sudo apt install curl

Debian

sudo apt-get install curl

Arch Linux

sudo pacman -S curl

Fedora

sudo dnf install curl

OpenSUSE

sudo zypper install curl

Outras Distribuições Linux

Usuários de outras distribuições Linux não terão dificuldade em encontrar o Curl, dada a sua ampla disponibilidade. Para instalá-lo, basta acessar o gerenciador de pacotes, buscar por “curl” e proceder com a instalação. Caso não encontre, o download pode ser feito aqui.

Upload com Curl

A interação com o Transfer.sh através do Curl envolve um comando um pouco extenso. Veja como funciona:

Primeiramente, localize o arquivo que deseja enviar. Use comandos como “find” ou “locate” no terminal, ou utilize o gerenciador de arquivos. Anote o caminho do arquivo e utilize o comando “cd” para navegar até o diretório onde ele se encontra. Neste exemplo, enviaremos o arquivo “test.mp3” localizado na pasta Documentos.

cd ~/Documents

Agora, o terminal está no diretório correto. Use o seguinte comando, que é composto de duas partes, para realizar o upload. A primeira parte é:

 curl --upload-file ./test.mp3

A próxima etapa envolve a criação da URL que o Transfer.sh utilizará. Considere o nome e a extensão do arquivo ao digitar a URL:

https://transfer.sh/test.mp3

O comando final deverá ser assim:

curl --upload-file ./test.mp3 https://transfer.sh/test.mp3

O Curl enviará o arquivo para o Transfer.sh e retornará um URL. Utilize essa URL para fazer o download do arquivo ou compartilhe-a com quem desejar.

Alias para Transfer.sh no Terminal

Apesar de ser útil em algumas situações, o envio manual com Curl não é a solução mais prática. Não há indicação do progresso do upload, e lembrar do comando completo pode ser cansativo. Para solucionar isso, foi criado um alias Bash. Uma vez configurado, esse alias permitirá aos usuários enviar arquivos e pastas com apenas uma palavra.

Para configurar o alias, abra o arquivo BashRC do seu usuário. É importante lembrar que a modificação do arquivo BashRC deve ser realizada individualmente para cada usuário.

nano ~/.bashrc

Utilizando o Nano, navegue até o final do arquivo e cole o código do alias do Transfer SH. É crucial colar todo o código, para garantir o funcionamento correto do alias.

Observação: Para colar usando Nano através da área de transferência, utilize CTRL + SHIFT + V.

transfer() {
 # check arguments
 if [ $# -eq 0 ];
 then
 echo "No arguments specified. Usage:necho transfer /tmp/test.mdncat /tmp/test.md | transfer test.md"
 return 1
 fi

# get temporarily filename, output is written to this file show progress can be showed
 tmpfile=$( mktemp -t transferXXX )

# upload stdin or file
 file=$1

if tty -s;
 then
 basefile=$(basename "$file" | sed -e 's/[^a-zA-Z0-9._-]/-/g')

if [ ! -e $file ];
 then
 echo "File $file doesn't exists."
 return 1
 fi

if [ -d $file ];
 then
 # zip directory and transfer
 zipfile=$( mktemp -t transferXXX.zip )
 cd $(dirname $file) && zip -r -q - $(basename $file) >> $zipfile
 curl --progress-bar --upload-file "$zipfile" "https://transfer.sh/$basefile.zip" >> $tmpfile
 rm -f $zipfile
 else
 # transfer file
 curl --progress-bar --upload-file "$file" "https://transfer.sh/$basefile" >> $tmpfile
 fi
 else
 # transfer pipe
 curl --progress-bar --upload-file "-" "https://transfer.sh/$file" >> $tmpfile
 fi

# cat output link
 cat $tmpfile
 echo ""
 # cleanup
 rm -f $tmpfile
 }

Após colar o código no arquivo ~/.bashrc, salve as alterações com CTRL + O. Reinicie seu computador para que as mudanças entrem em vigor.

Utilização do Alias para Upload no Terminal

O envio de arquivos usando o alias do TransferSH é bem mais simples do que o uso manual do Curl. Utilizaremos novamente o arquivo “test.mp3” e a pasta Documentos como exemplo.

Passo 1: Navegue no terminal até o local onde está o arquivo ou pasta que deseja enviar.

cd ~/Documents

Passo 2: Inicie o processo de upload.

transfer test.mp3

Para enviar uma pasta, use:

transfer file_folder

Passo 3: Aguarde o terminal concluir o upload. Uma barra de progresso será exibida, e um link de download será fornecido ao final do processo.

Download com Curl

O Curl não é apenas uma ferramenta de upload, mas também de download. Para baixar um arquivo enviado via Transfer.sh, siga as instruções abaixo:

Primeiramente, copie o link de download fornecido pela ferramenta de upload. Em seguida, use o seguinte comando:

curl https://transfer.sh/vN79X/test.zip > test.zip

Certifique-se de substituir o nome do arquivo após “>” pelo nome correto do arquivo no link de download. É assim que o Curl nomeará o arquivo em seu computador. Você pode alterar o nome, mas não é recomendado.

Download com Wget

Apesar da popularidade do Curl, algumas pessoas preferem usar o Wget para download, pois o consideram mais simples. O Wget também pode baixar arquivos do Transfer.sh. Veja como:

wget https://transfer.sh/vN79X/test.zip

Conclusão

Em algumas situações, pode ser necessário acessar um arquivo de outro computador rapidamente enquanto se trabalha em um servidor. A configuração de SSH ou FTP pode ser demorada. É nesse contexto que o TransferSH se mostra uma ferramenta essencial. Ele facilita a transferência de arquivos, independentemente do tamanho, diretamente da linha de comando.