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:
# 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}"
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).
Voraussetzung: Sie haben den Ordner mit dem Code der aktuellen Webseite in Visual Studio Code geöffnet. Nehmen wir an, dieser Ordner heisse humpfdidumpf.
upload.bash ein.humpfdidumpf wird auf den Server in den Ordner humpfdidumpf kopiert und die Berechtigungen auf dem Server automatisch gesetzt.
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.
Teminal→New Terminal)images mit dem Kommando cd images.upload.bash humpfdidumpf ein.images wird auf den Server in den Ordner humpfdidumpf kopiert und die Berechtigungen auf dem Server automatisch gesetzt.