Actuellement, je ne peux copier qu'un seul .tar
fichier. Mais comment puis-je copier des répertoires de manière récursive scp
?
573
Oui, utilisez -r
:
scp -rp sourcedirectory user@dest:/path
Note: Ceci crée l’ sourcedirectory
intérieur /path
donc les fichiers seront dans/path/sourcedirectory
-pr
(les options dans l'ordre inverse) ne copiera pas les dossiers, mais leur contenu dans le répertoire cible (apparemment, l'ordre des options est important).Bien que les réponses précédentes soient techniquement correctes, vous devriez également envisager d'utiliser à la
rsync
place.rsync
compare les données des côtés émetteur et récepteur à un mécanisme de différenciation afin d'éviter de renvoyer les données déjà envoyées.Si vous allez copier quelque chose sur une machine distante plusieurs fois, utilisez
rsync
. En fait, il est bon de l'utiliser àrsync
chaque fois, car il comporte plus de contrôles pour la copie des autorisations et de la propriété des fichiers, ainsi que pour l'exclusion de certains fichiers ou répertoires. En général:va synchroniser un répertoire local avec un répertoire distant. Si vous l'exécutez une seconde fois et que le contenu du répertoire local n'a pas changé, aucune donnée ne sera transférée - ce qui est beaucoup plus efficace que d'exécuter
scp
et de tout copier à chaque fois.En outre,
rsync
vous permet de récupérer des transferts interrompus très facilement, contrairement àscp
.Enfin, les versions modernes de
rsync
par défaut fonctionnent sur ssh, donc si celascp
fonctionne déjà, celarsync
devrait plutôt être un remplacement immédiat.la source
rsync
est plus efficace. Une chose qu’il ne fait pas actuellementscp
est de permettre la copie entre des hôtes distants (au moins sans exécuter le client rsync sur l’un d’eux).-av
: v est pour verbose, a pour archive et est un raccourci vers -rlptgoD qui implique récursive, conserve les dates et les liens du propriétaire des droits. Si vous voulez seulement une utilisation récursive-r
C'est ce que l'
-r
option est pour. :)Voir la page de manuel scp pour plus d'informations si nécessaire.
la source
Option de copie récursive '-r' (minuscule)
Ce que je confonds avec l'option de copie récursive locale habituelle '-R' (majuscule)
la source
Le meilleur moyen est d'utiliser rsync sur SSH
Mes options préférées sont -Pazvessh - Supprimer:
la source
rsync
que j'ai utilisées utiliseraientssh
par défaut, il-essh
est donc peu probable qu'elles soient nécessaires. Et le choix de commande utilisé pour se connecter à l'hôte distant n'a vraiment aucun rapport avec la copie récursive.Après avoir recherché l'indicateur de copie récursive et l'avoir utilisée avec succès grâce à ce message, j'aimerais simplement poster une suggestion.
Si c'est le cas, vous copiez (de manière récursive) un répertoire. Peut-être que si les fichiers sont envoyés compressés, vous pourriez gagner du temps lors du transfert
Ce que j'ai fait à la fin était:
J'espère que cela t'aides
la source
.tar.gz
soit.tgz
puisque le fichier est une archive tar compressée (car l'-z
indicateur est utilisé).Vous pouvez copier récursivement un répertoire dans une archive compressée avec cette commande simple:
Par exemple, pour copier le contenu de
/var/log
dedomain.com
vers~/logs.tgz
vous, exécutez:Vous pouvez également extraire des fichiers sur le système cible à l'aide de canaux. Cette commande va copier le contenu de
/var/log
atdomain.com
sur~/destination/log
sur votre système:Bien que pour mettre en miroir un répertoire, vous devriez probablement utiliser
rsync
...la source
Si vous préférez passer le mot de passe de l'utilisateur en tant que paramètre plutôt que de le saisir de manière interactive, vous pouvez utiliser
sshpass
(sudo apt-get install -y sshpass
).Exemple:
la source
Vous pouvez utiliser l'option -r avec la commande scp pour copier des répertoires de manière récursive sur tout système. Si vous avez besoin d’autre chose, reportez-vous au didacticiel de la commande scp . L'option -r est synonyme d'opération récursive dans la plupart des commandes Linux.
la source
-r
option a déjà été suggérée il y a des années et constitue la réponse acceptée.Une autre option (probablement préférable pour une utilisation répétée) consiste à utiliser NFS - consultez nfs-kernel-server et comment configurer les partages NFS.
la source
scp
mais NFS n'est pas une option.