Как загружать и делиться файлами из терминала 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» и установите его! Если по какой-то причине он вам недоступен, скачать здесь.

  Как установить PHP в Linux

Использование Curl для загрузки

Для взаимодействия с transfer.sh с помощью curl требуется довольно длинная команда. Вот как это работает.

Сначала найдите файл в своей файловой системе для загрузки. Используйте «найти» или «найти» в своем терминале (или перейдите в файловый менеджер, найдите файл и обратите внимание на то, где он находится). Запомнив, где находится файл, который вы пытаетесь загрузить, используйте команду cd, чтобы перейти туда. В этом примере мы загрузим «test.mp3» из папки «Документы».

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 при настройке даст пользователю возможность легко загружать файлы и папки одним словом.

  Как настроить SSH-ключ в 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.

  Как изменить размер тома LVM в 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 — такой полезный инструмент. Это делает захват файлов любого размера прямо из командной строки проще, чем когда-либо.