87 votes

Comment faire pour que scp copie des fichiers cachés ?

J'utilise souvent SCP pour copier des fichiers, en particulier des fichiers liés au web. Le problème est qu'à chaque fois que je fais cela, je n'arrive pas à faire en sorte que ma commande copie les fichiers cachés (par exemple, .htaccess).

J'invoque généralement ceci :

scp -rp src/ user@server:dest/

Ça ne copie pas les fichiers cachés. Je ne veux pas avoir à invoquer cette fonction à nouveau (en faisant quelque chose comme scp -rp src/.* ... - et cela a étrange . y .. implications de toute façon.

Je n'ai rien vu dans le scp page de manuel à propos d'une "inclusion de fichiers cachés".

Comment puis-je y parvenir ?

83voto

Matt Simmons Points 20098

Cela devrait absolument correspondre aux fichiers cachés. Le / à la fin de la source dit "chaque fichier sous ce répertoire". Néanmoins, les tests et les recherches vous donnent raison. C'est un comportement stupide.

Le " respuesta "est d'ajouter un point à la fin de la source :

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

Le site réel La réponse est d'utiliser rsync.

34voto

gimel Points 30150

Vous pouvez essayer rsync. Il est mieux adapté à ce travail :

rsync -av src/ user@server:dest/

(Et sa page de manuel vaut la peine d'être lue).

10voto

Matt Hanson Points 1929

Ne mettez pas de barre oblique après le répertoire source. Votre code ressemblerait à ceci :

scp -rp src user@server:dest/

Cela va créer un répertoire 'src' sous 'dest' sur la machine distante, avec tous les fichiers cachés inclus. Ce n'est probablement pas exactement ce que vous voulez, mais cela copiera les fichiers cachés dans src.

10voto

Pour copier uniquement les fichiers cachés, utilisez cette commande

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

Le jeu actuel est le /.[!.]* qui fait référence aux fichiers commençant par . (caché)

3voto

stevensagaar Points 139

La solution suivante résoudra le problème. Elle a été entièrement testée dans notre environnement d'intégration continue.

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

J'espère que cela vous aidera

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X