scp - ignorer un fichier lors de l'exécution


8

J'exécute scp et je copie un dossier à partir d'un serveur distant, j'exécute avec -rl, donc je vois les fichiers en cours de copie, est-il possible de sauter le fichier actuel d'une manière ou d'une autre?

Réponses:


11

Non tu ne peux pas. Mais vous pouvez arrêter scpet utiliser à la rsyncplace. Il ne copiera que les différences laissées par la copie partielle et vous pouvez exclure tous les fichiers ou répertoires que vous ne souhaitez pas transférer.

rsync -avP -e ssh --exclude=somefile --exclude=somedir ./localdir/ user@server:remotedir/

2
C'est utile, oui, mais malheureusement cela ne répond pas à la question posée.
Emmaly Wilson

8
Il répond parfaitement à la question; la question demande s'il est possible de faire quelque chose et cette réponse répond "non". Il fournit ensuite une alternative utile sur le sujet.
Christopher Shroba

1

Non, pas avec -rou toute autre syntaxe qui effectue plusieurs transferts de fichiers dans une seule scpcommande.

Cela dit, scpsuit également le paradigme UNIX: écrire des programmes qui fournissent des fonctionnalités simples et précises qui peuvent être enchaînées de manière intéressante. Cela signifie qu'il serait possible d'écrire une boucle qui effectue de manière interactive des invocations individuelles de la commande, une par fichier. Vous pourrez alors sortir des commandes individuelles pendant leur exécution. (Ctrl-C)

Le code pour cela est laissé au lecteur comme exercice, mais la nécessité pour cette boucle de s'exécuter dans un shell interactif doit être soulignée. Sortir d'un shell non interactif mettrait fin à tout le travail.


0

Oui, vous pouvez!

Listons le répertoire distant et copions chaque fichier séparément. Appuyez ensuite sur ctrl-c pour chaque fichier que vous ne souhaitez pas copier:

OLD_IFS="$IFS"
IFS=$'\n'
for file in `ssh user@host ls /remote/directory/`
  do echo user@host:/remote/directory/$file /local/directory/
done;
IFS="$OLD_IFS"

OLD_IFS est là pour gérer les fichiers contenant des espaces.


Où mettez-vous cela? Comment l'appelez-vous?
StatsSorceress
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.