Як завантажувати та обмінюватися файлами з терміналу Linux за допомогою Transfer.sh

У сучасному світі обмін файлами став надзвичайно легким. Завдяки різноманітним сервісам, таким як Dropbox, Google Drive та OneDrive, переміщення даних між різними платформами відбувається швидко та без зайвих зусиль. Однак, якщо ви віддаєте перевагу роботі з терміналом, ситуація може здатися трохи складнішою, оскільки передача файлів часто здійснюється через застарілі протоколи, як SFTP. На щастя, існує TransferSH – інструмент, розроблений спеціально для тих, хто працює в терміналі Linux, дозволяючи швидко завантажувати та обмінюватися файлами.

СПОЙЛЕР: Внизу статті ви знайдете відеоінструкцію.

Просте використання Transfer.sh

Transfer.sh надає веб-інтерфейс, де ви можете завантажувати та обмінюватися файлами безпосередньо через браузер. Але його справжня сила розкривається при використанні з командного рядка, що дозволяє миттєво ділитися файлами, не покидаючи термінал. Для цього вам знадобиться утиліта Curl.

Встановлення Curl на різних дистрибутивах Linux

Залежно від вашої операційної системи, процес встановлення 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

Для користувачів інших, менш поширених дистрибутивів, пошук та встановлення Curl не повинно викликати проблем, адже він є широкодоступним. Просто скористайтеся вашим менеджером пакетів, знайдіть “curl” і встановіть його. Якщо у вас виникли проблеми, ви можете завантажити його з офіційного сайту.

Завантаження файлів через Curl

Для взаємодії з transfer.sh через curl потрібно використовувати доволі довгу команду. Розглянемо, як це працює.

Почніть з пошуку файлу, який ви хочете завантажити, у вашій файловій системі. Ви можете використовувати команди “find” або “locate” в терміналі, або ж скористатися файловим менеджером, щоб знайти потрібний файл і запам’ятати його розташування. Після того, як ви знайшли файл, скористайтеся командою “cd”, щоб перейти до каталогу, де він знаходиться. У цьому прикладі ми будемо завантажувати файл “test.mp3” з папки “Документи”.

cd ~/Documents

Тепер, коли ви знаходитесь в потрібному каталозі, скористайтеся командою нижче, щоб підготувати завантаження файлу. Це перша частина команди:

curl --upload-file ./test.mp3

Далі необхідно створити URL-адресу, яку буде використовувати transfer.sh. Включіть назву файлу (з розширенням) у URL:

https://transfer.sh/test.mp3

Таким чином, повна команда для завантаження файлу матиме вигляд:

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

Curl надішле ваш файл на transfer.sh та поверне вам посилання. Ви можете відкрити це посилання, щоб завантажити файл, або поділитися ним з іншими.

Псевдонім Transfer.sh для терміналу

Хоча ручне завантаження через Curl може бути корисним у крайньому випадку, воно не є оптимальним. Немає індикації процесу завантаження, інформації про його прогрес, а запам’ятовування команди щоразу може бути обтяжливим. Тому розробник створив псевдонім Bash. Після його налаштування, користувачі зможуть легко завантажувати файли та папки лише за допомогою одного слова.

Щоб його налаштувати, відкрийте файл BashRC. Пам’ятайте, що для використання цього псевдоніма потрібно змінити файл BashRC кожного користувача.

nano ~/.bashrc

В редакторі Nano прокрутіть до кінця файлу та вставте код псевдоніма Transfer SH. Переконайтеся, що ви вставили весь код, інакше псевдонім працювати не буде.

Примітка: для вставки коду в 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 збережіть зміни за допомогою CTRL + O. Щоб зміни набули чинності, необхідно перезавантажити комп’ютер.

Завантаження файлів з використанням псевдоніма

Завантаження файлів з псевдонімом TransferSH набагато простіше, ніж через Curl вручну. Знову використаємо файл “test.mp3” та папку “Documents” як приклад.

Крок 1: перейдіть до терміналу у місце, де знаходиться файл/папка, який ви хочете завантажити.

cd ~/Documents

Крок 2: почніть процес завантаження.

transfer test.mp3

або для завантаження папки:

transfer file_folder

Крок 3: дочекайтеся завершення завантаження. Термінал покаже індикатор процесу, а після завершення – посилання для завантаження.

Завантаження файлів через Curl

Curl можна використовувати не тільки для завантаження, але й для отримання файлів. Щоб завантажити файл, який був завантажений на transfer.sh, виконайте наступні кроки.

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

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

Замініть “test.zip” після “>” на ім’я файлу з посилання для завантаження. Так Curl назве файл на вашому комп’ютері. Ви можете змінити ім’я, але не рекомендується це робити.

Завантаження через Wget

Не зважаючи на популярність Curl, деякі користувачі віддають перевагу використанню Wget, оскільки він простіший у використанні. Він так само легко може завантажувати файли з посилань Transfer SH. Ось як це зробити:

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

Висновки

Хоча це трапляється не часто, інколи може знадобитися швидкий доступ до файлу з іншого комп’ютера при роботі на сервері. Налаштування SSH, вхід на FTP та інші процеси можуть бути виснажливими. Саме тому TransferSH є таким корисним інструментом. Він значно спрощує процес передачі файлів будь-якого розміру прямо з командного рядка.