Table of Contents

upload.bash

Aus irgendwelchen Gründen werden die Berechtigungen auf dem Server falsch gesetzt, wenn von Windows aus mit scp ganze Ordner kopiert werden.

Folgendes bash-script kopiert den aktuellen Ordner rekursiv (d.h. mit allen Unterordnern) und setzt danach die Berechtigungen korrekt. Dieses soll als ~/bin/upload.bash gepeichert werden. Die Tilda (~) steht für Ihr Home-Verzeichnis, normalerweise C:\Users\hans.muster (grafisch wird Users oft auch als Benutzer angezeigt). Entweder speichern Sie untenstehenden Datei mit Rechtklick→Link speichern unter direkt am richtigen Ort (eventuell ist das Verzeichnis bin noch anzulegen), oder

gehen Sie dazu wie folgt vor:

cd
mkdir -p bin
code bin/upload.bash

Kopieren Sie dann folgenden Inhalt in die Datei:

upload.bash
# Dieses bashscript kopiert den aktuellen Ordner
# rekursiv auf den Server.
# Optional kann ein Zielordner angegeben werden.
 
PFAD=$(pwd)
#echo Pfad ist ${PFAD}
DIR=$(basename "${PFAD}")
#echo Dir ist ${DIR}
 
HOME=`realpath ~`
if [ "$HOME" = "$PFAD" ]; then
	echo "Oops! Sie befinden sich im Verzeichnis $PFAD."
	echo "Dieses Verzeichnis wird nicht auf den Server kopiert!"
	echo "Wechseln Sie in das zu kopierende Verzeichnis!"
	exit
fi
 
 
 
# Entweder . (HOME) oder Argument als Zielordner
if [ -z $1 ]; then
    TARGET="."
else
    TARGET="$1"
fi
 
#echo Target ist ${TARGET}
 
if [ "." != "${TARGET}" ]; then
    echo "ensuring target ${TARGET} exists"
    echo ssh ofi mkdir -p "\"${TARGET}\""
    ssh ofi mkdir -p "\"${TARGET}\""
fi
 
echo "Copying..."
echo scp -r "${PFAD}" "ofi:${TARGET}"
scp -r "${PFAD}" "ofi:${TARGET}"
echo "Adjusting permissions..."
echo ssh ofi chmod -R u+rwX,go+rX,go-w "${TARGET}/${DIR}"
ssh ofi chmod -R u+rwX,go+rX,go-w "${TARGET}/${DIR}"

Anwendungsbeispiele

upload.bash    # Lädt das ganze aktuelle lokale Verzeichnis mit allen Unterverzeichnissen auf den Server hoch, in ein Verzeichnis mit gleichem Namen
upload.bash hello   # Lädt das ganze aktuelle lokale Verzeichnis mit allen Unterverzeichnissen auf den Server hoch, als Unterverzeichnis im Verzeichnis hello (das nötigenfalls angelegt wird).

Ganzer Ordner kopieren

Voraussetzung: Sie haben den Ordner mit dem Code der aktuellen Webseite in Visual Studio Code geöffnet. Nehmen wir an, dieser Ordner heisse humpfdidumpf.

Ganzer Unterordner kopieren

Voraussetzung: Sie haben den Ordner mit dem Code der aktuellen Webseite in Visual Studio Code geöffnet. Nehmen wir an, dieser Ordner heisse humpfdidumpf. Sie möchten den Unterordner images kopieren.

Default Terminal auf git-bash setzen

Quelle