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 ?

1voto

donmutti Points 1

Comme scp supporte les expressions régulières, cela fera l'affaire pour vous :

scp -rp src/(*|.*) user@server:dest/

0voto

Ray Cote Points 109

Aucune des solutions scp ci-dessus n'a fonctionné pour moi. Cependant, j'ai trouvé que la solution suivante fonctionnait sous cygwin : scp -r répertoire/* hôte:répertoire Le '*' correspond à tous les fichiers visibles et ignore les fichiers invisibles.

0voto

oherrala Points 390

Si la connexion par mot de passe est désactivée sur la machine distante et que le seul moyen de se connecter est la clé publique, vous pouvez utiliser cette méthode :

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

Il copie aussi les fichiers cachés.

Notez également que "user1" doit avoir les permissions de lire ces fichiers, par exemple vous ne pouvez pas copier les dossiers ssh d'un autre utilisateur avec cette méthode.

-1voto

Serge Stroobandt Points 305

Le contrôle de révision distribué gère les fichiers cachés

En raison de la vulnérabilité CVE-2018-20685, le programme /. astuce ne peut plus être utilisé con scp . Cependant, le contrôle de révision distribué comme git ou Hg Mecurial traitera les fichiers cachés comme n'importe quel autre fichier. Voici les commandes de mon préféré Hg Mercurial :

server:$ sudo apt install mercurial
client:$ sudo apt install mercurial
client:$ hg init src
client:$ cd src/
client:$ hg addr
client:$ hg com -m "first commit"
client:$ cd
client:$ hg clone src ssh://user@server/dest/

Les modifications ultérieures devront être validées à nouveau avec la fonction client:$ hg com -m "commit message" et ensuite poussé en utilisant le client:$ hg push commande. Pour en savoir plus sur le transfert des modifications, voir Hg Mercurial cheat sheet .

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