# FTP

# FTP : transférer des fichiers

## Introduction

Le FTP (pour File Transfer Protocol, protocole de transfert de fichiers) est un service Internet utilisé pour transférer des fichiers d'une machine vers une autre. `FTP` a deux usages :

- Envoyer des fichiers (upload) : on peut transférer des fichiers d'un compte d'un machine vers un compte d'une autre machine. Cela fonctionne de façon très voisine d'une connexion à distance depuis une machine sur une autre. En particulier, il faut avoir un compte et un mot de passe sur la machine distante (ce n'est pas nécessaire sur la machine locale si celle-ci est un Mac ou un PC sous Windows).
- Récupérer des fichiers (download) : on peut récuperer sur Internet des fichiers utiles pour sa machine. Par exemple, beaucoup de distributions Linux sont disponibles directement et gratuitement par FTP. De nombreux utilitaires, jeux, programmes corrigeant des erreurs sont aussi disponibles de façon libre par FTP. On parle pour cet usage de «FTP anonyme», car l'utilisateur n'a pas de compte sur la machine distante, mais utilise un compte public.

Les programmes `ftp` et `ncftp` sur les machines Unix sont adaptés à ces deux usages. On parlera ici de `ncftp` car c'est le plus pratique. D'autres logiciels existent, sous Unix, DOS ou Macintosh. Certains, comme Netscape, ne sont réellement adaptés qu'au FTP anonyme.

&icone.note; Concrètement, le nom de login d'une connexion FTP anonyme est `ftp` ou `anonymous`. La plupart des serveurs FTP anonymes demandent si on rentre ces logins l'adresse de courriers électroniques de l'utilisateur en mot de passe. La connexion n'est donc pas à proprement parler « anonyme ».

## Le FTP non anonyme

`ncftp` suppose par défaut que vous cherchez à vous connecter d'une façon anonyme à la machine distante. Il faut lui préciser le contraire en lui indiquant le login de la connexion. Pour cela, tapez dans un terminal :

    ncftp -u login nom-de-la-machine

en remplaçant `login` par votre login sur la machine distante, et `nom-de-la-machine` par le nom de cette machine. Par exemple, Toto veut se connecter à Jourdan pour récupérer des fichiers; il tape :

    ncftp -u toto vedette.ens.fr

`ncftp` vous demandera alors votre mot de passe sur la machine distante. Une fois ceci effectué, vous êtes connecté à la machine distante (si votre mot de passe était correct). L'invite ressemble alors à celle d'un interprétateur de commande (shell), et vous pouvez utiliser la plupart des commandes Unix fondamentales sur les fichiers et les répertoires, comme `ls`, `cd`, `rm`, `mkdir`, `rmdir`. Vous pouvez ainsi vous déplacer dans les répertoires distants (si vous avez le droit de le faire).

Nombre de commandes existent aussi avec la lettre `l` devant (ce qui donne `lls`, `lcd`, ...), ce qui signifie que ces commandes doivent être executées sur la machine locale. Vous pouvez ainsi vous déplacer à la fois sur la machine distante et la machine locale. Pour faire des transferts, deux commandes existent principalement :

### Récupérer

`get` permet de ramener un fichier de la machine distance vers la machine locale. Vous pouvez mettre plusieurs noms de fichiers à la suite pour ramener plusieurs fichiers. Si vous voulez ramener un fichier tout en changeant son nom, utilisez l'option -z :

    get -z fichier-distant nom-du-fichier-local

### Envoyer

`put` permet de copier un fichier de la machine locale vers la machine distante. Elle s'utilise exactement comme `get`.

&icone.attention; Des problèmes peuvent apparaitre si vous faites des transferts entre machine utilisant des systèmes d'exploitation différents (comme Unix et Windows). En particulier, les passages à la ligne ne sont pas codés pareil sous ces deux systèmes d'exploitation. Par défaut, `ncftp` ne modifie pas les fichiers transférés, et un fichier texte ramené sous Unix depuis Windows pourra présenter des « ^M » à la fin de chaque ligne (tandis qu'un fichier texte transféré dans l'autre sens ne fera pas le retour chariot à la fin des lignes). Deux commandes, à taper avant la commande de transfert, servent à modifier cela :

- `ascii` précise à `ncftp` de faire la conversion.
- À l'inverse, si on veut s'assurer qu'aucune tentative de conversion ne sera faite (si vous transférez des programmes ou des fichiers compressés), utilisez la commande `bin` avant de faire le transfert.

Pour quitter `ncftp`, utilisez la commande `quit`. On vous demandera alors si vous voulez garder la machine dans les marque-page, éventuellement avec le mot de passe.

## Le FTP anonyme

Il n'y a pas de réelle différence entre une connexion anonyme ou non anonyme, si ce n'est qu'il n'est pas nécessaire d'utiliser l'option `-u`. `ncftp` se charge de donner `anomymous` comme login, et votre adresse de courier électronique comme mot de passe. Vous pouvez alors utiliser les commandes exactement comme dans une connexion non anonyme. Notez que vous n'aurez que rarement l'occasion d'utiliser des commandes qui modifient le contenu du disque de la machine distante (`rm`, `put`, `mkdir`...), mais cela peut arriver.

Il est possible de passer en ligne de commande de `ncftp` une URL de la forme `ftp://machine/chemin-de-repertoires/`. `ncftp` se charge alors d'arriver directement dans le répertoire considéré s'il existe. Un telle URL peut aussi être utilisée avec Netscape (à la place de l'URL des pages Web).

N'ont été décrites que les commandes de base de `ncftp`, qui est un outil puissant. Consultez le manuel de `ncftp` pour plus de détails.

## Quelques sites anonymes

- `ftp.jussieu.fr` contient une quantité de logiciels telle qu'il est illusoire de tous les détailler ici. En vrac, on y trouve plusieurs distributions à jour de Linux, de nombreux utilitaires Unix libres, des distributions de TeX et LaTeX (installables sous Windows ou Macintosh), etc... Nombre de logiciels installés chez gourous viennent de ce site.
- `ftp.funet.fi` contient de nombreux miroirs d'autres sites (c'est-à-dire qu'il recopie régulièrement d'autres sites pour que leur contenu soit plus facilement accessible), ce qui le rend très utile pour les utilisateurs européens (ce site est en Finlande) pour qui les connexions avec les sites américains est lente.

Afin de faciliter les recherches entre les différents sites FTP, un logiciel nommé `archie` (ou `xarchie`) existe. Son usage est toutefois assez malaisé. Une bonne méthode est de demander autour de soi (dans forum par exemple) si quelqu'un ne sait pas où trouver ce que vous cherchez.

## FTP sous Macintosh et Windows

La machine distante d'une connexion FTP (le serveur) est presque toujours une machine sous Unix. Mais la machine locale (le client) peut être sous Macintosh ou Windows :

### Sous Windows

Le programme lancé depuis une fenêtre de commande DOS s'appelle `ftp` et s'utilise un peu comme `ncftp` (en moins bien).

### Sous Macintosh

Le programme s'appelle Fetch. Vous en trouverez une présentation dans les cours de l'informatique littéraire.

Ces programmes vous permettent une connexion non anonyme, ce que Netscape fait difficilement.

Auteur : Dominique Quatravaux, Émilia Robin. Dernière modification le .