V dnešní době je sdílení souborů snazší než kdy jindy. Mezi Dropboxem, Diskem Google, OneDrive atd. funguje přesun věcí z jednoho místa na druhé poměrně rychle – pokud nepoužíváte terminál. Pokud používáte terminál, je pravděpodobné, že stále získáváte soubory přes SFTP, nebo něco stejně archaického. Představujeme TransferSH: Nástroj pro sdílení souborů speciálně navržený tak, aby vám umožnil nahrávat a sdílet soubory z terminálu Linux.
SPOILER ALERT: Přejděte dolů a podívejte se na video tutoriál na konci tohoto článku.
Table of Contents
Ruční použití Transfer.sh
Transfer.sh má webové rozhraní a můžete nahrávat a sdílet soubory z vašeho prohlížeče. Služba funguje také s příkazovým řádkem, takže můžete sdílet soubor přímo přes terminál. Ke sdílení souborů z linuxového terminálu pomocí Transfer.sh potřebujete 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
Ostatní Linuxy
Uživatelé nemainstreamových linuxových distribucí by neměli mít příliš velké problémy s nalezením programu Curl, protože je široce dostupný. Chcete-li jej získat, jednoduše otevřete správce balíčků, vyhledejte „curl“ a nainstalujte jej! Pokud pro vás z nějakého důvodu není k dispozici, stáhněte si to zde.
Použití Curl k nahrání
Interakce s transfer.sh pomocí curl vyžaduje poměrně dlouhý příkaz. Zde je návod, jak to funguje.
Nejprve najděte soubor ve vašem souborovém systému, který chcete nahrát. Ve svém terminálu použijte „najít“ nebo „vyhledat“ (nebo přejděte do správce souborů, najděte soubor a poznamenejte si, kde se nachází). Poté, co si poznamenáte, kde je soubor, který se pokoušíte nahrát, přejděte tam pomocí příkazu cd. V tomto příkladu budeme nahrávat soubor „test.mp3“ ze složky Dokumenty.
cd ~/Documents
Terminál je nyní v adresáři, kde je test.mp3. Nyní použijte tento příkaz „vzorec“ k nahrání souboru. Toto je první část příkazu:
curl --upload-file ./test.mp3
Dalším krokem je vytvoření URL pro transfer.sh k použití. Mějte na paměti název souboru (stejně jako příponu) a napište jej takto:
https://transfer.sh/test.mp3
Konečný výsledek by měl vypadat takto;
curl --upload-file ./test.mp3 https://transfer.sh/test.mp3
Curl odešle soubor na Transfer.sh a vrátí URL. Chcete-li soubor stáhnout, otevřete adresu URL nebo jej odešlete komukoli, s kým chcete soubor sdílet.
Alias terminálu Transfer.sh
Ruční nahrávání pomocí Curl vás může dostat z úzkých, ale není to dokonalé. Nic nenasvědčuje tomu, že nahrávání funguje, jaká část souboru byla nahrána a pamatovat si větu jen pro nahrání něčeho je docela únavné. Z tohoto důvodu si vývojář vytvořil alias Bash. Tento bash alias, když je nastaven, dá uživateli možnost snadno nahrávat soubory a složky pomocí jediného slova.
Chcete-li jej nastavit, otevřete soubor BashRC. Pochopte, že soubor BashRC každého jednotlivého uživatele musí být upraven, aby mohl používat tento alias.
nano ~/.bashrc
Pomocí Nano přejděte na úplný konec souboru. Poté vložte aliasový kód Transfer SH. Nezapomeňte vložit každý kousek kódu, jinak nebude alias bash fungovat.
Poznámka: vkládání pomocí Nano přes schránku lze provést pomocí 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 }
Po vložení dlouhého množství kódu do souboru ~/.bashrc uložte nano pomocí CTRL + O. Restartujte počítač, aby se úpravy projevily.
Použití aliasu terminálu k nahrávání
Nahrávání s aliasem TransferSH je mnohem jednodušší než ruční použití Curl. V tomto příkladu opět použijeme test.mp3 a složku Dokumenty.
Krok 1: Přejděte na terminálu, kde se nachází soubor/složka, kterou chcete nahrát.
cd ~/Documents
Krok 2: Spusťte proces nahrávání.
transfer test.mp3
nebo pro složku udělejte:
transfer file_folder
Krok 3: Počkejte, až terminál nahraje soubor. Na obrazovce se objeví ukazatel průběhu a po dokončení vyplivne odkaz ke stažení.
Stahování pomocí Curl
Curl je víc než jen nástroj pro nahrávání. Je to také nástroj pro stahování. Chcete-li stáhnout soubor nahraný pomocí transfer.sh, postupujte podle těchto pokynů.
Nejprve zkopírujte odkaz ke stažení, který vám nástroj pro nahrávání poskytne, a uložte jej do schránky. Poté stáhněte toto:
curl https://transfer.sh/vN79X/test.zip > test.zip
Nezapomeňte přepsat název souboru za > na ten v odkazu ke stažení. To je to, co curl pojmenuje stahování do vašeho PC. Je možné změnit název, ale nedoporučujeme to.
Stahování pomocí Wget
Navzdory tomu, jak populární je Curl, někteří lidé jej odmítají používat, protože se zdá být komplikovaný, a místo toho se rozhodnou použít také stažení Wget. Dává to smysl, protože Wget je velmi přímočarý. Stejně jako nástroj Curl může Wget také snadno stáhnout odkazy Transfer SH. Zde je postup:
wget https://transfer.sh/vN79X/test.zip
Závěr
Nestává se to často, ale občas při práci na serveru můžete potřebovat rychlý přístup k souboru z jiného počítače. Nastavení SSH, přihlašování na FTP atd. jsou únavné. Proto je TransferSH tak užitečným nástrojem. Díky tomu je získávání souborů jakékoli velikosti přímo z příkazového řádku snazší než kdy předtím.