Как да качвате и споделяте файлове от терминала на Linux с Transfer.sh

В наши дни споделянето на файлове е по-лесно от всякога. Между Dropbox, Google Drive, OneDrive и т.н., преместването на нещата от едно място на друго работи доста бързо — освен ако не използвате терминала. Ако използвате терминала, има вероятност все още да получавате файлове през SFTP или нещо също толкова архаично. Представяне TransferSH: инструмент за споделяне на файлове, специално проектиран да ви позволи да качвате и споделяте файлове от терминала на Linux.

ПРЕДУПРЕЖДЕНИЕ ЗА СПОЙЛЕР: Превъртете надолу и гледайте видеоурока в края на тази статия.

Използване на Transfer.sh ръчно

Transfer.sh има уеб интерфейс и можете да качвате и споделяте файлове от вашия браузър. Услугата работи и с командния ред, така че можете да споделяте файл директно през терминала. За да споделяте файлове от терминала на Linux с помощта на Transfer.sh, имате нужда от 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

Други Linux

Потребителите на Linux дистрибуции, които не са масови, не би трябвало да имат много проблеми с намирането на програмата Curl, поради това колко широко разпространена е тя. За да го получите, просто отворете вашия мениджър на пакети, потърсете „curl“ и го инсталирайте! Ако по някаква причина не е достъпен за вас, изтеглете го тук.

  5-те най-добри Linux дистрибуции за тестване на сигурността

Използване на Curl за качване

Взаимодействието с transfer.sh с помощта на curl изисква доста дълга команда. Ето как работи.

Първо намерете файл във вашата файлова система, който да качите. Използвайте „намери“ или „намери“ във вашия терминал (или отидете на файловия мениджър, намерете файла и си отбележете къде се намира). След като си отбележите къде е файлът, който се опитвате да качите, използвайте командата cd, за да отидете там. В този пример ще качим “test.mp3” от папката Documents.

cd ~/Documents

Терминалът вече е в директорията, където е test.mp3. Сега използвайте тази команда „формула“, за да качите файла. Това е първата част от командата:

 curl --upload-file ./test.mp3

Следващата стъпка е да създадете URL за transfer.sh, който да се използва. Имайте предвид името на файла (както и разширението) и го напишете така:

https://transfer.sh/test.mp3

Крайният резултат трябва да изглежда така;

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

Curl ще изпрати файла до Transfer.sh и ще върне URL. Отворете URL адреса, за да изтеглите файла, или го изпратете на когото искате да споделите файла.

Псевдоним на терминала Transfer.sh

Ръчното качване с Curl може да ви изведе от трудното място, но не е перфектно. Няма индикация, че качването работи, колко от файл е качен и запомнянето на изречение само за качване на нещо е доста досадно. Именно поради това разработчикът направи псевдоним на Bash. Този псевдоним на bash, когато е настроен, ще даде на потребителя възможността лесно да качва файлове и папки с една дума.

  Как да четете Wikipedia от работния плот на Linux

За да го настроите, отворете вашия BashRC файл. Разберете, че BashRC файлът на всеки отделен потребител трябва да бъде променен, за да използва този псевдоним.

nano ~/.bashrc

С помощта на Nano отидете до самия край на файла. След това поставете кода за псевдоним на Transfer SH. Не забравяйте да поставите всяка част от кода, или псевдонимът на bash няма да работи.

Забележка: поставянето с помощта на Nano през клипборда може да се извърши с 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
 }

След като поставите голямото количество код във файла ~/.bashrc, запазете nano с CTRL + O. Рестартирайте компютъра си, така че редакциите да влязат в сила.

Използване на псевдоним на терминала за качване

Качването с псевдонима TransferSH е много по-лесно, отколкото ръчното използване на Curl. В този пример отново ще използваме test.mp3 и папката Documents.

  Как да запишете вашия екран от командния ред на Linux

Стъпка 1: Придвижете терминала до мястото, където се намира файлът/папката, която искате да качите.

cd ~/Documents

Стъпка 2: стартирайте процеса на качване.

transfer test.mp3

или за папка направете:

transfer file_folder

Стъпка 3: Изчакайте терминалът да качи файла. Лентата за напредъка ще премине през екрана и ще изплюе връзка за изтегляне, когато приключи.

Изтегляне с Curl

Curl е нещо повече от просто инструмент за качване. Това също е инструмент за изтегляне. За да изтеглите файл, качен от transfer.sh, следвайте тези инструкции.

Първо копирайте връзката за изтегляне, която ви дава инструментът за качване, и я запазете в клипборда си. След това направете това, за да изтеглите:

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

Не забравяйте да напишете отново името на файла след > до това в връзката за изтегляне. Това е, което curl назовава изтеглянето на вашия компютър. Възможно е да промените името, но не го препоръчваме.

Изтегляне с Wget

Въпреки колко популярен е Curl, някои хора отказват да го използват, тъй като изглежда сложен, и вместо това избират да използват и изтеглянето на Wget. Има смисъл, тъй като Wget е много ясен. Подобно на инструмента Curl, Wget също може лесно да изтегля връзки Transfer SH. Ето как:

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

Заключение

Това не се случва често, но понякога, докато работите на сървър, може да се нуждаете от бърз достъп до файл от друг компютър. Настройването на SSH, влизането в FTP и т.н. са досадни. Ето защо TransferSH е толкова полезен инструмент. Това го прави така, че грабването на файлове с всякакъв размер направо от командния ред по-лесно от всякога.