Frage Wie macht man scp versteckte Dateien kopieren?


Ich verwende SCP oft zum Kopieren von Dateien - insbesondere Web-bezogene Dateien. Das Problem ist, dass, wenn ich das mache, ich meinen Befehl nicht bekommen kann, versteckte Dateien zu kopieren (zB .htaccess).

Ich rufe dies normalerweise an:

scp -rp src/ user@server:dest/

Dies kopiert keine versteckten Dateien. Ich möchte das nicht noch einmal aufrufen müssen scp -rp src/.* ... - und das ist seltsam . und .. Auswirkungen sowieso.

Ich habe nichts gesehen in der scp man page über ein "include hidden files".

Wie kann ich das erreichen?


54
2018-06-07 18:39


Ursprung


ich nehme an, dass src/.* auch kopiert src/.. (das übergeordnete Verzeichnis), oder? - Ken Sharp


Antworten:


Das sollte absolut mit versteckten Dateien übereinstimmen. Das / am Ende der Quelle sagt "jede Datei in diesem Verzeichnis". Nichtsdestoweniger ertragen Tests und Untersuchungen Sie. Das ist dummes Verhalten.

Das "Antworten"ist ein Punkt an das Ende der Quelle anzuhängen:

scp -rp src/. user@server:dest/

Das echt Die Antwort lautet rsync.


58
2018-06-07 18:51



Netter Trick, das habe ich noch nicht bemerkt. - cstamas
rsync -avz -e ssh --progress src / Benutzer @ Server: Ziel / - MikeyB
dummer linux. Danke für den Link! - rascher
Ich kann dieses Verhalten nicht reproduzieren. scp -r source/ host:source2 Kopiert Punktdateien. Funktioniert in OpenSSH 5.1 von 2007. - Mikel


Sie können rsync versuchen. Es ist besser geeignet für diesen Job:

rsync -av src / Benutzer @ Server: Ziel /

(Und die Handbuchseite ist lesenswert.)


24
2018-06-07 18:51



ich immer Verwenden Sie die Option --progress für rsync, ich kann nicht ohne it = D leben - Hofa
@Hofa benutze ich normalerweise -P weil es kürzer ist, beinhaltet bereits --progress und beinhaltet auch --partial was sinnvoll ist wenn ich schon an seinem Fortschritt interessiert bin ;-) - cstamas


Hinter dem Quellverzeichnis darf kein Schrägstrich stehen. Ihr Code würde folgendermaßen aussehen:

scp -rp src user@server:dest/

Dies wird ein Verzeichnis 'src' unter 'dest' auf dem Remote-Rechner mit allen versteckten Dateien erstellen. Es ist wahrscheinlich nicht genau das, was Sie wollen, aber es wird versteckte Dateien in src kopieren.


9
2018-06-07 18:52





Das Folgende wird das Problem lösen, das wurde in unserer kontinuierlichen Integrationsumgebung umfassend getestet

scp -rp src/. user@server:dest/
example scp -rp /usr/src/code/. content001@172.11.11.11:/usr/dest/code/

Ich hoffe es hilft


3
2018-06-16 13:19





Um nur versteckte Dateien zu kopieren, verwenden Sie diesen Befehl

scp -rp /path_to_copy_hidden/.[!.]* user@host:/path_to_paste/

Das eigentliche Spiel ist das /.[!.]* Tag, das sich auf Dateien bezieht, die mit beginnen .(versteckt)


1
2018-06-06 05:51





Keine der obigen scp-Lösungen funktionierte für mich. Allerdings habe ich festgestellt, dass Folgendes bei Cygwin funktioniert hat: scp -r Verzeichnis / * Host: Verzeichnis Das '*' entsprach allen sichtbaren Dateien und übersprang das Unsichtbare.


0
2018-03-23 17:23





Wenn die Kennwortanmeldung auf dem Remotecomputer deaktiviert ist und Sie sich nur über den öffentlichen Schlüssel anmelden können, können Sie Folgendes verwenden:

$ rsync -av -s 'ssh -i /path/to/your/private/SSH/key' --progress user1@remote.host:/remote/source/directory/ /local/destination/directory/

Es kopiert auch versteckte Dateien.

Beachten Sie auch, dass "user1" die Berechtigungen zum Lesen dieser Dateien haben muss. Sie können beispielsweise die ssh-Ordner anderer Benutzer nicht mit dieser Methode kopieren.


0
2017-07-07 10:31