Vraag Hoe scp kopiëren van verborgen bestanden?


Ik gebruik vaak SCP om bestanden te kopiëren - met name webgerelateerde bestanden. Het probleem is dat wanneer ik dit doe, ik mijn opdracht niet kan krijgen om verborgen bestanden te kopiëren (bijv., .Htaccess).

Ik roep dit meestal aan:

scp -rp src/ user@server:dest/

Dit kopieert geen verborgen bestanden. Ik wil hier niet opnieuw een beroep op doen (door zoiets te doen scp -rp src/.* ... - en dat is raar . en .. implicaties.

Ik zag niets in de scp manpage over een "include hidden files".

Hoe kan ik dit bereiken?


54
2018-06-07 18:39


oorsprong


ik veronderstel dat src/.* ook kopieën src/.. (de bovenliggende directory), toch? - Ken Sharp


antwoorden:


Dat moet absoluut overeenkomen met verborgen bestanden. De / aan het einde van de bron zegt "elk bestand onder deze map". Niettemin, testen en onderzoeken dragen je uit. Dit is dom gedrag.

De "antwoord"is om een ​​punt toe te voegen aan het einde van de bron:

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

De echt antwoord is om rsync te gebruiken.


58
2018-06-07 18:51



Leuke trick Ik heb dit nog niet gerealiseerd. - cstamas
rsync -avz -e ssh --progress src / user @ server: dest / - MikeyB
dom linux. bedankt voor de link! - rascher
Ik kan dat gedrag niet reproduceren. scp -r source/ host:source2 kopieert puntbestanden. Werkt in OpenSSH 5.1 vanaf 2007. - Mikel


Je kunt rsync proberen. Het is beter geschikt voor deze taak:

rsync -av src / user @ server: dest /

(En de handleiding is de moeite waard om te lezen.)


24
2018-06-07 18:51



ik altijd gebruik de - progressie optie voor rsync, ik kan niet leven zonder het = D - Hofa
@Hofa gebruik ik meestal -P omdat het korter is, al inclusief - voortgang en ook - partiaal wat logisch kan zijn als ik al geïnteresseerd ben in de voortgang ;-) - cstamas


Zet geen schuine streep achter de bronmap. Uw code zou er als volgt uitzien:

scp -rp src user@server:dest/

Hiermee wordt een map 'src' onder 'dest' op de externe computer gemaakt, met alle verborgen bestanden inbegrepen. Het is waarschijnlijk niet precies wat je wilt, maar het zal verborgen bestanden kopiëren in src.


9
2018-06-07 18:52





Het volgende zal het probleem oplossen, dit is volledig getest op onze continue integratieomgeving

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

Hoop dat het helpt


3
2018-06-16 13:19





Om alleen verborgen bestanden te kopiëren, gebruik deze opdracht

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

Feitelijk spel is het /.[!.]* tag die verwijst naar bestanden die beginnen met .(verborgen)


1
2018-06-06 05:51





Geen van de bovenstaande scp-oplossingen werkte voor mij. Ik merkte echter dat het volgende werkte aan cygwin: scp -r map / * host: map De '*' kwam overeen met alle zichtbare bestanden en sloeg het onzichtbare over.


0
2018-03-23 17:23





Als wachtwoordinloggen op het externe apparaat is uitgeschakeld en de enige manier om in te loggen is via een openbare sleutel, kunt u dit gebruiken:

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

Het kopieert ook verborgen bestanden.

Houd er ook rekening mee dat "user1" de rechten moet hebben om die bestanden te lezen, u kunt bijvoorbeeld de ssh-mappen van andere gebruikers niet kopiëren met deze methode.


0
2017-07-07 10:31