Heutzutage ist der Austausch von Dateien so unkompliziert wie nie zuvor. Dank Diensten wie Dropbox, Google Drive und OneDrive lassen sich Daten schnell zwischen verschiedenen Standorten verschieben – es sei denn, man nutzt das Terminal. Bei der Verwendung des Terminals greift man oft auf SFTP oder ähnliche, ältere Methoden zurück. Hier kommt TransferSH ins Spiel: ein Werkzeug, das speziell für das Hochladen und Teilen von Dateien über das Linux-Terminal entwickelt wurde.
Hinweis: Am Ende dieses Beitrags finden Sie ein Video-Tutorial.
Die manuelle Nutzung von Transfer.sh
Transfer.sh bietet eine Weboberfläche, über die Dateien per Browser hochgeladen und geteilt werden können. Der Dienst ist auch über die Kommandozeile zugänglich, was das Teilen von Dateien direkt vom Terminal aus ermöglicht. Um Dateien über das Linux-Terminal mit Transfer.sh zu teilen, wird Curl benötigt.
Curl installieren
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 |
Nutzer weniger gängiger Linux-Distributionen sollten keine Probleme haben, das Curl-Programm zu finden, da es weit verbreitet ist. Installieren Sie es einfach über Ihren Paketmanager, indem Sie nach „curl“ suchen. Falls es aus irgendeinem Grund nicht verfügbar ist, können Sie es hier herunterladen.
Hochladen mit Curl
Die Interaktion mit transfer.sh über Curl erfordert einen längeren Befehl. Hier ist, wie es funktioniert:
Zunächst wählen Sie eine Datei zum Hochladen aus. Verwenden Sie „find“ oder „locate“ im Terminal oder suchen Sie die Datei mit dem Dateimanager und merken Sie sich ihren Speicherort. Navigieren Sie anschließend mit dem Befehl „cd“ zu diesem Speicherort. In diesem Beispiel laden wir „test.mp3“ aus dem Ordner „Dokumente“ hoch.
cd ~/Documents
Das Terminal befindet sich nun im Verzeichnis, in dem sich test.mp3 befindet. Verwenden Sie diesen Befehl, um die Datei hochzuladen:
curl --upload-file ./test.mp3
Erstellen Sie nun die URL für die Nutzung von transfer.sh. Beachten Sie den Dateinamen (einschließlich der Erweiterung) und schreiben Sie ihn folgendermaßen:
https://transfer.sh/test.mp3
Das vollständige Ergebnis sollte so aussehen:
curl --upload-file ./test.mp3 https://transfer.sh/test.mp3
Curl sendet die Datei an Transfer.sh und gibt eine URL zurück. Öffnen Sie diese URL, um die Datei herunterzuladen, oder geben Sie sie an die Person weiter, mit der Sie die Datei teilen möchten.
Transfer.sh Terminal Alias
Das manuelle Hochladen mit Curl ist zwar nützlich, aber nicht ideal. Es gibt keine Information über den Fortschritt des Uploads und es ist mühsam, sich den Befehl zu merken. Aus diesem Grund wurde ein Bash-Alias erstellt. Dieser Alias erlaubt es dem Benutzer, nach der Einrichtung, Dateien und Ordner mit einem einzigen Wort hochzuladen.
Um den Alias einzurichten, öffnen Sie Ihre BashRC-Datei. Beachten Sie, dass die BashRC-Datei jedes Benutzers einzeln angepasst werden muss.
nano ~/.bashrc
Gehen Sie mit Nano zum Ende der Datei und fügen Sie den Transfer SH-Aliascode ein. Achten Sie darauf, dass der gesamte Code korrekt eingefügt wird, da der Alias sonst nicht funktioniert.
Hinweis: Das Einfügen mit Nano über die Zwischenablage erfolgt mit STRG + UMSCHALT + 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 }
Speichern Sie die Datei ~/.bashrc nach dem Einfügen des Codes mit STRG + O und starten Sie Ihren PC neu, damit die Änderungen wirksam werden.
Verwendung des Terminal-Alias zum Hochladen
Das Hochladen mit dem TransferSH-Alias ist deutlich einfacher als die manuelle Nutzung von Curl. In diesem Beispiel verwenden wir wieder die Datei test.mp3 aus dem Ordner „Dokumente“.
Schritt 1: Navigieren Sie im Terminal zu der Datei/dem Ordner, die Sie hochladen möchten.
cd ~/Documents
Schritt 2: Starten Sie den Upload-Vorgang.
transfer test.mp3
oder für einen Ordner:
transfer file_folder
Schritt 3: Warten Sie, bis das Terminal die Datei hochgeladen hat. Ein Fortschrittsbalken wird angezeigt und nach Abschluss des Uploads wird ein Download-Link ausgegeben.
Herunterladen mit Curl
Curl ist nicht nur ein Upload-Tool, sondern auch ein Download-Tool. So laden Sie eine mit Transfer.sh hochgeladene Datei herunter:
Kopieren Sie den Download-Link, den Sie vom Upload-Tool erhalten haben, und gehen Sie wie folgt vor:
curl https://transfer.sh/vN79X/test.zip > test.zip
Ersetzen Sie den Namen nach > durch den Namen in Ihrem Download-Link. Dadurch wird der Download auf Ihrem PC entsprechend benannt. Es ist möglich, den Namen zu ändern, wird aber nicht empfohlen.
Herunterladen mit Wget
Trotz der Beliebtheit von Curl, bevorzugen einige Nutzer Wget zum Download, da es einfacher erscheint. Auch Wget kann Transfer SH-Links problemlos herunterladen. Hier ist, wie es funktioniert:
wget https://transfer.sh/vN79X/test.zip
Fazit
Es kommt nicht häufig vor, aber gelegentlich, wenn Sie auf einem Server arbeiten, benötigen Sie schnell Zugriff auf eine Datei von einem anderen Computer. Das Einrichten von SSH, das Einloggen in FTP usw. sind oft umständlich. Daher ist TransferSH ein sehr nützliches Tool, da es das Abrufen von Dateien jeder Größe direkt über die Befehlszeile erleichtert.