У сучасному світі обмін файлами став надзвичайно легким. Завдяки різноманітним сервісам, таким як 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 є таким корисним інструментом. Він значно спрощує процес передачі файлів будь-якого розміру прямо з командного рядка.