scp est un utilitaire en ligne de commande sous Linux qui permet de transférer des fichiers d’une machine à une autre en utilisant le protocole ssh. Sur macOS, le paquet est déjà installé.

Syntaxe

$ scp [Options] [sources] [destination]

Les options

  • -r pour copier le contenu d’un répertoire (récursif)
  • -p préserver les permissions et l’horodatage du fichier source sur le fichier de destination
  • -q ne pas afficher la barre de progression
  • -v mode verbose pour afficher plus de détails
  • -P xxxx se connecter avec un port spécifique (attention l’option est bien en majuscule)

Télécharger un fichier

Vous pouvez télécharger un fichier/répertoire d’un serveur ssh pour le sauvegarder en local.

$ scp [utilisateur]@[IP_ou_nom_machine]:[emplacement_fichier]
[Emplacement_local]

Exemple :
Télécharger le fichier distant foo.txt du compte nicolas sur le serveur 192.168.1.32 et le sauvegarder dans le répertoire courant ./.

$ scp nicolas@192.168.1.32:./foo.txt ./

Envoyer un fichier

Il est possible d’envoyer un fichier/répertoire local vers un serveur ssh.

$ scp [fichier_local_a_envoyer] [utilisateur]@[IP_ou_nom_machine]:
[emplacement_distant]

Exemple:
Envoyer le fichier foo.txt du compte nicolas sur le serveur 192.168.1.32 et le sauvegarder dans le répertoire courant /home/nicolas/utils.

$ scp foo.txt nicolas@192.168.1.32:/home/nicolas/utils

Pour simplement envoyer un ficher dans le répertoire racine du compte distant, il faut quand même mettre les : :

$ scp foo.txt nicolas@192.168.1.32:

La même chose en précisant le port :

$ scp -P 2200 foo.txt nicolas@192.168.1.32:

Références externes