Jak nahrávat a sdílet soubory z terminálu Linux pomocí Transfer.sh

Photo of author

By etechblogcz

V dnešní digitální éře se sdílení souborů stalo neuvěřitelně jednoduchým. Služby jako Dropbox, Google Drive a OneDrive umožňují rychlý přesun dat mezi různými platformami. Nicméně, pokud jste zvyklí pracovat s terminálem, pravděpodobně stále používáte metody jako SFTP, které mohou být považovány za zastaralé. Právě pro vás přichází TransferSH, nástroj určený k nahrávání a sdílení souborů přímo z vašeho linuxového terminálu.

Níže v tomto článku naleznete video tutoriál, který vám ukáže, jak na to.

Manuální použití Transfer.sh

Transfer.sh nabízí webové rozhraní, které umožňuje nahrávání a sdílení souborů i z webového prohlížeče. Nicméně, plný potenciál tohoto nástroje se ukrývá v jeho integraci s příkazovou řádkou. Pro sdílení souborů z linuxového terminálu budete potřebovat nástroj Curl.

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

Další distribuce Linuxu

Uživatelé méně rozšířených linuxových distribucí by neměli mít problém s instalací Curl, jelikož je obecně dostupný. Stačí otevřít váš správce balíčků, vyhledat „curl“ a nainstalovat ho. Pokud by pro vás Curl nebyl dostupný, můžete si ho stáhnout zde.

Nahrávání souborů pomocí Curl

Pro interakci s Transfer.sh pomocí curl je nutné zadat relativně dlouhý příkaz. Zde je postup, jak na to.

Nejprve si najděte soubor, který chcete nahrát. Můžete použít příkazy jako „find“ nebo „locate“ v terminálu, nebo použít váš správce souborů a poznamenat si jeho umístění. Jakmile znáte cestu k souboru, přejděte do tohoto adresáře pomocí příkazu „cd“. V tomto příkladu budeme nahrávat soubor „test.mp3“ z adresáře Dokumenty.

cd ~/Documents

Nyní, když je terminál v adresáři, kde se nachází soubor test.mp3, použijte následující příkaz pro nahrání souboru. Toto je první část příkazu:

curl --upload-file ./test.mp3

Nyní je potřeba vytvořit URL pro Transfer.sh. Mějte na paměti název souboru včetně přípony a zadejte URL ve formátu:

https://transfer.sh/test.mp3

Kompletní příkaz bude vypadat následovně:

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

Curl odešle váš soubor na Transfer.sh a vrátí vám URL adresu. Otevřete tuto URL adresu pro stažení souboru, nebo ji pošlete komukoli, s kým chcete soubor sdílet.

Alias pro terminál Transfer.sh

Manuální nahrávání pomocí Curl může být užitečné, ale není dokonalé. Neinformuje vás o postupu nahrávání a pamatovat si celý příkaz pro nahrání souboru je poměrně zdlouhavé. Proto vývojáři vytvořili bash alias. Tento alias vám umožní nahrávat soubory a složky pomocí jediného slova.

Pro nastavení aliasu je potřeba otevřít soubor .bashrc. Mějte na paměti, že každý uživatel má svůj vlastní soubor .bashrc, který musí být upraven.

nano ~/.bashrc

V Nano se posuňte na konec souboru a vložte kód aliasu Transfer SH. Ujistěte se, že vložíte celý kód, jinak nebude alias fungovat správně.

Poznámka: vkládání v Nano přes schránku se provádí pomocí CTRL + SHIFT + V.

transfer() {
 # kontrola argumentů
 if [ $# -eq 0 ];
 then
 echo "Nebyly zadány žádné argumenty. Použití: transfer /tmp/test.md nebo cat /tmp/test.md | transfer test.md"
 return 1
 fi

# získá dočasný název souboru pro zobrazení průběhu
 tmpfile=$( mktemp -t transferXXX )

# nahraje stdin nebo soubor
 file=$1

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

if [ ! -e $file ];
 then
 echo "Soubor $file neexistuje."
 return 1
 fi

if [ -d $file ];
 then
 # zazipuje adresář a nahraje
 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
 # nahraje soubor
 curl --progress-bar --upload-file "$file" "https://transfer.sh/$basefile" >> $tmpfile
 fi
 else
 # nahraje pipe
 curl --progress-bar --upload-file "-" "https://transfer.sh/$file" >> $tmpfile
 fi

# vypíše odkaz
 cat $tmpfile
 echo ""
 # úklid
 rm -f $tmpfile
 }

Po vložení kódu do souboru ~/.bashrc uložte změny pomocí CTRL + O. Pro aktivování změn je potřeba restartovat terminál nebo počítač.

Nahrávání pomocí aliasu

Nahrávání s aliasem TransferSH je mnohem jednodušší než manuální použití Curl. V tomto příkladu opět použijeme soubor test.mp3 a adresář Dokumenty.

Krok 1: Přejděte v terminálu do adresáře, kde se nachází soubor nebo složka, kterou chcete nahrát.

cd ~/Documents

Krok 2: Spusťte nahrávání pomocí aliasu.

transfer test.mp3

nebo pro složku použijte:

transfer file_folder

Krok 3: Počkejte, dokud terminál nenahraje soubor. Na obrazovce se zobrazí ukazatel průběhu a po dokončení se zobrazí odkaz pro stažení.

Stahování pomocí Curl

Curl je všestranný nástroj, který lze použít i ke stahování souborů. Pro stažení souboru nahraného pomocí Transfer.sh postupujte podle následujících kroků.

Nejprve zkopírujte odkaz ke stažení, který vám Transfer.sh poskytl, a uložte ho do schránky. Poté zadejte následující příkaz:

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

Nezapomeňte nahradit název souboru za znakem „>“ názvem souboru, který je uveden v odkazu ke stažení. Curl pojmenuje stahovaný soubor podle toho, co je uvedeno za znakem „>“. Můžete si název souboru upravit, ale není to doporučeno.

Stahování pomocí Wget

I přes popularitu Curl někteří uživatelé dávají přednost nástroji Wget, protože se zdá být jednodušší na používání. Wget může také snadno stahovat soubory z Transfer SH. Postup je následující:

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

Závěr

Občas se může stát, že při práci se serverem potřebujete rychlý přístup k souboru z jiného počítače. Nastavování SSH nebo FTP může být zdlouhavé. Právě proto je TransferSH tak užitečný nástroj. Umožňuje vám získat soubory jakékoli velikosti přímo z příkazového řádku rychle a efektivně.