En utilisant la ligne de commande Linux, j'utilise la scp
commande pour copier tous les fichiers et dossiers d'un certain répertoire. Cependant, je n'aime pas consommer de bande passante, pour copier des choses que je change rarement comme mon tiny_mce
dossier. Quelle est l'astuce pour tout copier, mais sauter une courte liste de dossiers?
ssh
synchronization
file-copy
remote
Michael Prokopec
la source
la source
Vous pouvez essayer rsync qui copie uniquement les fichiers qui ont changé, fonctionne également via ssh.
la source
L'utilisation
rsync --exclude
est le choix le plus évident ici, mais si vous voulez vraiment envoyer quelques fichiers ou dossiers et avoir quelque chose de spécifique à exclure, vous pouvez utiliser le globing shell avecscp
. Assurez-vous d'abord que les bonnes options de globalisation sont définies dans votre shell. Pour bash runshopt -s extglob
et pour zsh usesetopt ksh_glob
. Alors quelque chose comme ça:... copierait tout dans le dossier source, à l'exception des éléments correspondant au modèle donné. De toute évidence, vous pouvez faire preuve de créativité avec cette partie.
la source
rsync
est une bonne solution, mais si vous cherchez une alternative:Disons que nous avons un répertoire "test" contenant les répertoires "foo, bar, baz". Dans ces répertoires se trouvent un tas de types de fichiers différents:
Nous voulons tout copier sauf les PNG
Dans cet exemple, la commande mettra tous les fichiers dans le même répertoire de destination - ce n'est peut-être pas le comportement souhaité.
la source
\[*?
).Un excellent outil que vous voudrez peut-être essayer est "lftp".
Vous pouvez également utiliser RSync sur ssh
Devrait marcher.
la source
Je viens de terminer d' écrire comment je préfère l' unisson à la synchronisation tous les jours, car il
*.bak
. Échantillons dans mon fichier de configurationla source
Utilisation de la copie sécurisée - scp
scp -r file user@host:
Pour copier plusieurs fichiers
scp /directory/* user@host:destinationPath
Pour copier certains fichiers
scp /directory/!(*.doc) user@host:destinationPath
Il copie le contenu du répertoire sauf les fichiers .doc
la source
Je vous recommanderais certainement rsync.
rsync -vra --exclude = "ce que vous voulez exclure" -e ssh dossier utilisateur @ remotehost: / dossier
la source
C'est ce qui a fonctionné pour moi lorsque je l'ai exécuté à partir du serveur de destination.
la source
Nous pouvons le faire en deux étapes pour ignorer le
tiny_mce
répertoire. En supposant que tous les répertoires commencent par des lettres minuscules.Modifiez également USER, HOSTNAME et FOLDER aux valeurs réelles.
la source