W dzisiejszych czasach udostępnianie plików stało się niezwykle proste. Dzięki platformom takim jak Dropbox, Google Drive czy OneDrive, transfer danych z jednego miejsca do drugiego przebiega wyjątkowo sprawnie – z wyjątkiem sytuacji, gdy korzystasz z terminala. Jeśli jesteś użytkownikiem terminala, prawdopodobnie przesyłasz pliki za pomocą SFTP lub innych tradycyjnych metod. W tym artykule przedstawiamy TransferSH, narzędzie stworzone specjalnie do przesyłania i dzielenia się plikami za pomocą terminala w systemie Linux.
OSTRZEŻENIE SPOILERA: Na końcu artykułu znajdziesz samouczek wideo.
Ręczne korzystanie z Transfer.sh
Transfer.sh oferuje interfejs webowy, co oznacza, że możesz przesyłać pliki bezpośrednio z przeglądarki. Usługa ta obsługuje również wiersz poleceń, co umożliwia przesyłanie plików za pośrednictwem terminala. Aby korzystać z Transfer.sh na systemie Linux, musisz zainstalować 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
Inne dystrybucje Linuxa
Użytkownicy mniej popularnych dystrybucji Linuksa nie powinni mieć problemu z odnalezieniem Curl, ponieważ jest on powszechnie dostępny. Po prostu otwórz menedżera pakietów, wyszukaj „curl” i zainstaluj go! Jeśli z jakiegoś powodu Curl nie jest dostępny, możesz pobrać go stąd.
Przesyłanie plików za pomocą Curl
Aby korzystać z transfer.sh przy użyciu Curl, będziesz musiał wprowadzić dość długie polecenie. Oto jak to zrobić.
Najpierw zlokalizuj plik, który chcesz przesłać. Możesz to zrobić za pomocą polecenia „find” lub „locate” w terminalu (lub poprzez menedżer plików, aby zidentyfikować lokalizację pliku). Po odnalezieniu lokalizacji pliku, użyj polecenia cd, aby się do niej przenieść. W tym przykładzie przesyłamy plik „test.mp3” z katalogu Dokumenty.
cd ~/Documents
Terminal jest teraz ustawiony w katalogu zawierającym plik test.mp3. Teraz wykonaj to polecenie, aby przesłać plik:
curl --upload-file ./test.mp3
Kolejnym krokiem jest utworzenie adresu URL, który będziesz używał w transfer.sh. Pamiętaj nazwę pliku (wraz z rozszerzeniem) i zapisz ją w następujący sposób:
https://transfer.sh/test.mp3
Ostateczne polecenie powinno wyglądać jak poniżej:
curl --upload-file ./test.mp3 https://transfer.sh/test.mp3
Po wykonaniu polecenia Curl wyśle plik do Transfer.sh i zwróci adres URL. Możesz otworzyć ten URL, aby pobrać plik, lub przesłać go komuś, komu chcesz udostępnić ten plik.
Alias terminala Transfer.sh
Ręczne przesyłanie plików za pomocą Curl może być kłopotliwe, dlatego deweloperzy stworzyli alias Bash, który ułatwia ten proces. Po skonfigurowaniu aliasu użytkownik będzie mógł przesyłać pliki i foldery za pomocą jednego polecenia.
Aby skonfigurować ten alias, otwórz plik .bashrc. Pamiętaj, że każdy użytkownik musi zmodyfikować swój własny plik .bashrc, aby móc korzystać z tego aliasu.
nano ~/.bashrc
Z użyciem Nano przejdź na koniec pliku i wklej kod aliasu TransferSH. Upewnij się, że wkleisz wszystkie fragmenty kodu, aby alias działał poprawnie.
Uwaga: Aby wkleić kod z schowka w Nano, użyj kombinacji 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 dodaniu powyższego kodu do pliku ~ / .bashrc, zapisz zmiany w Nano za pomocą CTRL + O. Aby zastosować zmiany, uruchom ponownie komputer.
Przesyłanie plików z użyciem aliasu terminala
Przesyłanie plików przy użyciu aliasu TransferSH jest znacznie prostsze niż ręczne korzystanie z Curl. Ponownie użyjemy pliku test.mp3 z folderu Dokumenty.
Krok 1: Przejdź do terminala do katalogu, w którym znajduje się plik lub folder, który chcesz przesłać.
cd ~/Documents
Krok 2: Rozpocznij przesyłanie.
transfer test.mp3
lub w przypadku folderu użyj:
transfer file_folder
Krok 3: Czekaj, aż terminal zakończy przesyłanie. Na ekranie pojawi się pasek postępu, a po zakończeniu procesu wyświetli link do pobrania.
Pobieranie plików z użyciem Curl
Curl nie służy jedynie do przesyłania plików, ale także do ich pobierania. Aby pobrać plik wysłany przez Transfer.sh, wykonaj następujące kroki.
Najpierw skopiuj link do pobierania, który generuje Transfer.sh, a następnie użyj poniższego polecenia, aby pobrać plik:
curl https://transfer.sh/vN79X/test.zip > test.zip
Pamiętaj, aby wprowadzić nazwę pliku po „>”, aby odpowiadała nazwie w linku pobierania. Możesz zmienić nazwę pliku, ale nie jest to zalecane.
Pobieranie za pomocą Wget
Pomimo popularności Curl, wielu użytkowników decyduje się na Wget, ponieważ wydaje się bardziej przyjazne. Wget również łatwo pobiera pliki z Transfer.sh. Oto jak to zrobić:
wget https://transfer.sh/vN79X/test.zip
Podsumowanie
Choć nie zdarza się to często, czasami podczas pracy na serwerze może być konieczne szybkie uzyskanie dostępu do pliku z innego komputera. Konfiguracja SSH czy logowanie do FTP mogą być uciążliwe. Dlatego TransferSH jest tak użytecznym narzędziem, które sprawia, że pobieranie plików o dowolnym rozmiarze bezpośrednio z terminala jest prostsze niż kiedykolwiek.
newsblog.pl
Maciej – redaktor, pasjonat technologii i samozwańczy pogromca błędów w systemie Windows. Zna Linuxa lepiej niż własną lodówkę, a kawa to jego główne źródło zasilania. Pisze, testuje, naprawia – i czasem nawet wyłącza i włącza ponownie. W wolnych chwilach udaje, że odpoczywa, ale i tak kończy z laptopem na kolanach.