lehrkraefte:blc:informatik:glf24:web:scp-workaround

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
lehrkraefte:blc:informatik:glf24:web:scp-workaround [2025/03/30 06:21] – created Ivo Blöchligerlehrkraefte:blc:informatik:glf24:web:scp-workaround [2025/05/12 18:51] (current) – [Ganzer Unterordner kopieren] Ivo Blöchliger
Line 2: Line 2:
 Aus irgendwelchen Gründen werden die Berechtigungen auf dem Server falsch gesetzt, wenn von Windows aus mit scp ganze Ordner kopiert werden. 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.+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:+gehen Sie dazu wie folgt vor:
   * git-bash öffnen (oder Powershell geht auch).   * git-bash öffnen (oder Powershell geht auch).
   * geben Sie folgende Kommandos ein:   * geben Sie folgende Kommandos ein:
Line 22: Line 22:
 DIR=$(basename "${PFAD}") DIR=$(basename "${PFAD}")
 #echo Dir ist ${DIR} #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 # Entweder . (HOME) oder Argument als Zielordner
Line 47: Line 57:
 </code> </code>
  
-  * Speichern Sie dann die Datei (File -> Save) oder einfacher <key>Ctrl</key><key>S</key>.+  * Speichern Sie dann die Datei (File -> Save) oder einfacher <key>Ctrl</key><key>s</key>.
  
 ===== Anwendungsbeispiele ===== ===== Anwendungsbeispiele =====
-Voraussetzung: Sie haben den Ordner mit dem Code der aktuellen Webseite in Visual Studio Code geöffnet. +<code bash> 
-  * Öffnen Sie ein Termin in Visual Studio Code+upload.bash    # Lädt das ganze aktuelle lokale Verzeichnis mit allen Unterverzeichnissen auf den Server hoch, in ein Verzeichnis mit gleichem Namen 
 +</code> 
 + 
 +<code bash> 
 +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). 
 +</code> 
 + 
 +==== 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''
 + 
 +  * Öffnen Sie ein git-bash Terminal in Visual Studio Code: {{:lehrkraefte:blc:informatik:glf24:web:pasted:20250403-095623.png}} 
 +  * geben Sie das neue Kommando ''upload.bash'' ein. 
 +  * Der ganze Inhalt vom aktuellen Verzeichnis ''humpfdidumpf'' wird auf den Server in den Ordner ''humpfdidumpf'' kopiert und die Berechtigungen auf dem Server automatisch gesetzt. 
 + 
 +==== 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. 
 +  * Öffnen Sie ein Terminal in Visual Studio Code (Menu ''Teminal->New Terminal''
 +  * wechseln Sie im Terminal ins Verzeichnis ''images'' mit dem Kommando ''cd images''
 +  * geben Sie das neue Kommando ''upload.bash humpfdidumpf'' ein. 
 +  * Der ganze Inhalt vom aktuellen Verzeichnis ''images'' wird auf den Server in den Ordner ''humpfdidumpf'' kopiert und die Berechtigungen auf dem Server automatisch gesetzt. 
 + 
 + 
 +==== Default Terminal auf git-bash setzen ==== 
 +{{:lehrkraefte:blc:informatik:glf24:web:pasted:20250512-205115.png}} [[https://stackoverflow.com/questions/44435697/change-the-default-terminal-in-visual-studio-code|Quelle]]
  • lehrkraefte/blc/informatik/glf24/web/scp-workaround.1743315693.txt.gz
  • Last modified: 2025/03/30 06:21
  • by Ivo Blöchliger