Einige der Kommandos dieses Kapitels werden an einem Beispiel
demonstriert. Dabei werden Dateien zwischen dem Client und dem Server
übertragen. Es handelt sich hierbei um Textdateien, die als ASCII-Dateien
übertragen werden. Die Bedeutung unterschiedlicher Übertragungsarten
(ASCII, BINARY, IMAGE) wird in Kapitel genauer erklärt.
Der Client läuft auf einem UNIX-System, der Server läuft auf
einem PC unter DOS, die Verbindung ist schon aufgebaut. Zum Überblick:
ftp>
pwd
250 Current working directory is Z:\
TRANSFER\
DEMOftp>
dir<dir> . Tue Jan 01 00:00:00 1980
<dir> .. Tue Jan 01 00:00:00 1980
9 SERVER.XYZ Fri Mar 25 16:10:20 1994
ftp>
!ls -ldrwxrwxrwx 2 mo hist 1024 Mar 25 15:38 demo_ftp_dir
-rw-r--r-- 1 mo hist 8 Mar 14 19:06 demoa.txt
-rw-r--r-- 1 mo hist 16 Mar 14 19:06 demob
Insgesamt stehen zwei Kommandopaare für die Übertragung von Dateien bereit. Das Kommandopaar get und mget ist für das Kopieren von Dateien get und mget vom Server zum Client zuständig, wobei get eine einzelne Datei kopiert und mit mget die Übertragung mehrerer Dateien angestoßen werden kann. Ein Beispiel zu get:
ftp>
get SERVER.XYZ get_testftp>
!ls get_test
get_test
Im Beispiel wurde die Datei SERVER.XYZ vom Server zum Client übertragen und unter dem Namen get_test abgelegt. Man muß nicht unbedingt einen Namen für die lokale Datei angeben; läßt man ihn weg, wird der ursprüngliche Name übernommen.
Die zwei Kommandos put put und mput und mput realisieren die Übertragung vom lokalen zum entfernten Rechner. Hier ist put für die Übertragung einer einzelnen und mput für die Übertragung von mehreren Dateien zuständig. Analog zur Verfahrensweise bei get kann bei put ein Name für die übertragene Datei auf dem Zielsystem angegeben werden.
Bei mget und mput sind Wildcards (s.o.) erlaubt. Besonders hierbei kommen Unterschiede einzelner Systeme zum Tragen: Bei mput mit Wildcards wird die Erweiterung von Dateinamen nach den Konventionen des Clients, bei mget nach Konventionen des Servers durchgeführt. Eine weitere Stelle, an der die Unterschiedlichkeit der Systeme sichtbar wird, ist die Behandlung von Groß- und Kleinschreibung. Das wird in dem folgenden Beispiel zu mput deutlich:
ftp>
mput demo*
mput demo_ftp_dir? y
demo_ftp_dir: not a plain file.
mput demoa.txt? y
mput demob? y ftp>
dir<dir> . Tue Jan 01 00:00:00 1980
<dir> .. Tue Jan 01 00:00:00 1980
9 SERVER.XYZ Fri Mar 25 16:10:20 1994
9 DEMOA.TXT Fri Mar 25 16:54:10 1994
18 DEMOB Fri Mar 25 16:54:12 1994
Neben der unterschiedlichen Behandlung der Groß- und Kleinschreibung
macht dieses Beispiel eine weitere Eigenschaft von FTP deutlich:
Verzeichnisse können nicht auf einmal übertragen werden!
Die Kommandos mit ihren Parametern noch einmal im einzelnen:
ftp>
get Dateiname lokaler-Dateinameftp>
put Dateiname entfernter-Dateinameftp>
mget Dateinamenftp>
mput Dateinamen
Speziell für das Kommando get gibt es bei vielen Clients, vor allem auf UNIX-Rechnern, Erweiterungen, die die Arbeit erleichtern:
ftp>
get Dateiname -
Gibt die Datei auf den Bildschirm aus.
ftp>
get Dateiname "|Kommando"
Die Datei wird einem Kommando als Eingabe übergeben. Sinnvolle Kommandos sind z.B. more oder grep.
Innerhalb einer FTP-Sitzung können auch Dateien gelöscht werden:
ftp>
delete Dateinameftp>
mdelete Dateinamen
Diese Kommandos löschen, bei entsprechender Berechtigung, eine oder mehrere Dateien auf dem entfernten Rechner.
Wie gezeigt wurde, hat FTP den Nachteil, daß nur Dateien und keine ganzen Verzeichnisse übertragen werden können. Natürlich stehen auf vielen Systemen Programme bereit, mit denen man ganze Dateibäume in eine einzelne Datei archivieren kann; solche Programme werden später genauer beschrieben, sie sind aber nicht Bestandteil des FTP-Pakets selbst. Mit FTP kann man jedoch Verzeichnisse lokal (lmkdir) und auch auf dem entfernten Rechner (mkdir) anlegen und so, nach und nach, manuell Verzeichnisse kopieren. Verzeichnisse auf dem Serverrechner können auch gelöscht werden. Insgesamt stehen für die Behandlung von Verzeichnissen auf den meisten Systemen die folgenden Kommandos bereit:
ftp>
lmkdir Verzeichnisname_lokalftp>
mkdir Verzeichnisname_auf_dem_Serverftp>
rmdir Verzeichnisname_auf_dem_Server