FTP stellt Kommandos bereit, mit denen man sich auf einem Server zurechtfinden und sich einen Überblick verschaffen kann. Alle Kommandos dieses Abschnitts werden anhand eines Beispiels dargestellt. Als Client- und Server-System diente jeweils ein UNIX-Rechner. Ausgangspunkt ist ein erfolgreich abgeschlossener Einlogvorgang.
Zunächst möchte man wissen, wo man sich nach dem Einloggen befindet. Darüber gibt das Kommando pwd (print working directory) Auskunft:
ftp>
pwd
257 "
/users/morgause"
is current directory.
Mit den Kommandos dir und ls verschafft man sich einen Überblick über den Inhalt eines Verzeichnisses (directories). Die Ausgabe von dir ist ausführlich, sie enthält i.d.R. die Namen und Dateigrößen von Dateien und Datumsangaben. Die Ausgabe von ls hingegen enthält nur die Namen von Dateien. Leider gibt es Systeme, auf denen ls die gleiche Ausgabe wie dir liefert. Hier erledigt oft das Kommando nlist die ursprüngliche Arbeit von ls.
ftp>
dir
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.total 12
drwxr-xr-x 3 morgause hist 1024 Mar 14 19:06 demo
-rw-rw-rw- 1 morgause hist 229 Mar 25 10:33 hallo
226 Transfer complete.
Im Beispiel wurde der Inhalt des aktuellen Verzeichnisses angezeigt.
Es ist jedoch möglich, dir und ls über
einen Parameter anzugeben, welches
Verzeichnis angezeigt werden soll.
Doch zunächst werden vor dem nächsten Beispiel die vielen
Meldungen des Servers
mit dem Kommando verb ausgeschaltet.
ftp>
verb
Verbose mode off.
ftp>
ls demodemo/file1.txt
demo/file2.txt
demo/demodir
Zu guter Letzt kann man noch über einen weiteren Parameter die Ausgabe der
Kommandos auf eine lokale Datei lenken.ftp>
ls demo local_file
output to local-file: local_file? y
Hier sind noch einmal die beiden Kommandos mit den möglichen Parametern:
ftp>
dir Verzeichnis lokale-Dateiftp>
ls Verzeichnis lokale-Datei
Die meisten Server können bei der Angabe eines
Verzeichnisses auch Wildcards (das *
Symbol für beliebig
viele und ?
für ein einzelnes Zeichen) verarbeiten, so
daß der Begriff Verzeichnis etwas eng gefaßt ist.
Beim Einsatz von Wildcards unterscheiden sich die einzelnen Systeme
bei der Behandlung von Suffixen (das sind
die typischen Endungen von Dateinamen wie z.B. .txt).
Angenommen, man hat drei unterschiedliche Dateien: test1.txt,
test2.txt, test3. Ein dir test*
auf einem UNIX-Server
listet alle drei
Dateien auf, ein Server unter DOS nur test3.
Wie die einzelnen Server reagieren, erfährt man am zuverlässigsten
durch Ausprobieren.
Speziell auf UNIX-Servern liefert das folgende Kommando den ausführlichen Inhalt des aktuellen Verzeichnisses und aller Unterverzeichnisse und deren Unterverzeichnisse usw., ein sogenanntes rekursives Listing:
ftp>
ls -lR lokaler-Dateiname
Auch hier kann der Name einer lokalen Datei angegeben werden. Beim Absetzen dieses Befehls sollte man vorsichtig sein, es gibt Anonymous FTP Server, deren Inhaltsverzeichnisse weit über 10 Megabyte umfassen. Ein ls -lR kostet auf diesen Rechnern erstens Rechenzeit und zweitens dauert es auch bei schnellen Verbindungen einige Zeit, bis 10 Megabyte übertragen sind. Viele Anonymous FTP Server halten deshalb Dateien mit dem komprimierten rekursiven Listing bereit, doch dazu später mehr. Für ,,private`` Anwendungen gibt ls -lR jedoch einen schnellen Überblick über den Inhalt von Verzeichnissen.
Zum Wechsel des aktuellen Arbeitsverzeichnisses stehen die Kommandos cd Pfadname und cdup (oder auch cd ..) zur Verfügung, wobei cdup ins nächsthöhere Verzeichnis wechselt:
ftp>
cd demoftp>
pwd
257 "/users/morgause/demo" is current directory.
ftp>
cdupftp>
pwd
257 "/users/morgause" is current directory.
Als Pfadname können sowohl absolute als auch relative Pfade angegeben werden.
Die meisten FTP-Clients bieten die Möglichkeit, auch im lokalen Dateisystem innerhalb einer FTP-Sitzung Verzeichnisse anzuzeigen oder zumindest das aktuelle Arbeitsverzeichnis zu wechseln. Dies macht Sinn, wenn man z.B. die Ergebnisse von Kommandos überprüfen will. Für umfangreichere Aktivitäten auf dem Client kann auch während einer FTP-Sitzung auf die lokale Betriebssystemebene gewechselt werden. Die erforderlichen Kommandos sind:
ftp>
lcd Pfadnameftp>
ldir Verzeichnisftp>
lpwdftp>
!
wobei mit !
auf die lokale Betriebssystemebene gewechselt
werden kann. Damit hat man die Möglichkeit, auf dem Client-Rechner
während einer FTP-Sitzung beliebige Kommandos auszuführen. Ein Beispiel
für den Einsatz von ! folgt im nächsten Kapitel.