Voici la structure du répertoire:
/a/
/a/b/
/a/c/
Je veux tout copier, SAUF pour le sous-répertoire/a/c /.
scp -rp myserver:/a . # this will copy everything
Q: Comment pourrais-je spécifier un répertoire à ne pas utiliser dans la commande scp?
Je ne pense pas que vous puissiez le faire, mais vous pouvez utiliser rsync? Quelque chose comme ça:
rsync -a --exclude=a/c myserver:/a .
Je pense que c'est peut-être la bonne façon de le faire, donc vous utilisez toujours SSH. Je n'ai pas trouvé de moyen de le faire avec scp - mais utiliser rsync sur ssh pourrait le résoudre.
rsync -e 'ssh -ax' -av --exclude /a/c myserver:/a .
Si vous utilisez le commutateur -n, le processus sera alors exécuté à sec:
rsync -e 'ssh -ax' -av --exclude /a/c -n myserver:/a .
Vous pouvez utiliser le globbing étendu comme dans l'exemple ci-dessous:
#Enable extglob
shopt -s extglob
cp -rv !(./excludeme/*.jpg) /var/destination
Ce n’est pas le moyen idéal de le faire, mais définissez le sous-répertoire que vous voulez exclure en lecture seule. chmod -R 444 /a/c
devrait faire l'affaire. Vous obtiendrez une erreur "autorisation refusée" lorsqu'il essaiera d'écrire sur ce répertoire.