Frage

Ich verwende derzeit den folgenden Befehl, um den Inhalt meiner Website hochzuladen:

scp -r web/* user@site.com:site.com/

Dies funktioniert hervorragend, außer dass die .htaccess-Datei nicht gesendet wird.Vermutlich liegt das daran, dass es versteckt ist.

Ich habe versucht, eine zweite Zeile hinzuzufügen, um die Datei explizit zu senden:

scp -r web/.htaccess user@site.com:site.com/.htaccess

Das funktioniert super, außer dass ich jetzt mein Passwort zweimal eingeben muss.

Irgendwelche Gedanken dazu, wie ich diese Bereitstellung mit nur 1 oder 0 Eingaben meines Passworts durchführen kann?

War es hilfreich?

Lösung

Kombinieren Sie einfach die beiden Befehle:

scp -r web/* web/.htaccess user@site.com:site.com/

Wenn Sie 0 Einträge Ihres Passworts wünschen, können Sie es einrichten Authentifizierung mit öffentlichem Schlüssel für ssh/scp.

Andere Tipps

Einige Hintergrundinformationen:Die * Platzhalter passt nicht zu sogenannten „Dot-Dateien“ (d. h.Dateien, deren Name mit einem Punkt beginnt).

Bei einigen Shells können Sie eine Option festlegen, sodass dies der Fall ist Wille match dot-files, allerdings ist das mit viel Aufwand verbunden:Jetzt * wird auch passen . (das aktuelle Verzeichnis) und .. (das übergeordnete Verzeichnis), was normalerweise nicht beabsichtigt ist und ziemlich überraschend sein kann!(rm -rf * Das Löschen des übergeordneten Verzeichnisses ist wahrscheinlich nicht der beste Start in den Tag ...)

Ein Wort der Vorsicht: Versuchen Sie nicht, gepunktete Dateien (z. B .htaccess) mit .* - das stimmt leider auch überein .., Dies würde dazu führen, dass alle Dateien im Pfad zum Stammverzeichnis kopiert werden.Ich habe das einmal gemacht (mit rm, nicht weniger!) und ich musste den Server neu erstellen, weil ich etwas falsch gemacht hatte /var.

@jwmittag:

Ich habe gerade einen Test auf Ubuntu gemacht und .* passt, wenn ich benutze cp.Hier ist ein Beispiel:

root@krash:/# mkdir a
root@krash:/# mkdir b
root@krash:/# mkdir a/c
root@krash:/# touch a/d
root@krash:/# touch a/c/e
root@krash:/# cp -r a/c/.* b
cp: will not create hard link `b/c' to directory `b/.'
root@krash:/# ls b
d  e

Wenn .* hat nicht gepasst .., Dann d sollte nicht drin sein b.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top