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.