Julian von Mendel: Linux: Versteckte Dateien über FTP anzeigen

Hi,

ich hab hier unter Linux das Konsolentool "ftp", mit dem ich auch problemlos eine Verbindung zu meinem FTP-Server aufbauen kann. Wenn ich mir mit "ls" oder "dir" aber das Verzeichnis anzeigen lasse, sind versteckte Dateien, also solche die mit "." beginnen, ausgeblendet. In der man-Page habe ich beim Überfliegen nichts entdeckt. Welchen Befehl muss ich verwenden damit auch versteckte Dateien angezeigt werden?

Außerdem interessiert es mich, wie ich automatisiert Befehle an das "ftp"-Programm geben kann, also von einem eigenen Skript aus, da "ftp" ja eigentlich interaktiv zu bedienen ist, und nicht über einen Parameter.

Schöne Grüße
Julian

--
"Wer in die Fußstapfen anderer tritt, hinterlässt selbst keinen Eindruck." - Christiane Weinhold
  1. Servus,

    haste es mal mit "ls -al" versucht?

    Bert

  2. Hi Julian!

    Mit ls -a kannst du dir auch Dateien anzeigen lassen, die mir einem "." beginnen. Nachzulesen auch unter man ls ;-)

    Grüße,
    Fabian St.

    --
    Endlich online: http://fabis-site.net
    --> XHTML, CSS, PHP-Formmailer, Linux
    Selfcode: ie:% fl:|  br:^ va:) ls:& fo:) rl:( n4:° ss:| de:> js:| ch:| mo:) zu:)
    1. Hallo,

      Mit ls -a kannst du dir auch Dateien anzeigen lassen, die mir einem "." beginnen. Nachzulesen auch unter man ls ;-)

      Wie ich es lokal mache ist mir bekannt, ich wusste nicht das er Remote die selben Parameter akzeptiert, da unter "man ftp" das nicht erwähnt wird ;)

      Schöne Grüße
      Julian

      --
      "Wer in die Fußstapfen anderer tritt, hinterlässt selbst keinen Eindruck." - Christiane Weinhold
  3. Hallo Julian,

    Zu Deiner ersten Frage muss ich noch etwas austesten :-)

    Außerdem interessiert es mich, wie ich automatisiert Befehle an das "ftp"-Programm geben kann, also von einem eigenen Skript aus, da "ftp" ja eigentlich interaktiv zu bedienen ist, und nicht über einen Parameter.

    http://www.informit.com/articles/article.asp?p=170517 könnte Dir in diesem Punkt weiterhelfen.

    Für Benutzer für Windows NT und Nachfolger (ich weiß, Du fällst nicht in diese Kategorie) geht es übrigens mit:
        ftp -s:Dateiname

    Freundliche Grüsse,

    Vinzenz

    1. Hallo Vinzenz,

      Zu Deiner ersten Frage muss ich noch etwas austesten :-)

      Umgebung: Fedora Core 2, vsftpd als FTP-Server in Standardkonfiguration.

      Wie Fabian und Bert es vorher gesagt haben, werden in dieser Konfiguration die Parameter des ls-Befehls durchgereicht. Für die Anzeige der "versteckten" Dateien genügt somit bereits ein

      ls .*    : Nur die Dateien, die mit einem Punkt beginnen, werden angezeigt.
          ls -al   : Alle Dateien werden angezeigt.

      Selbstverständlich ist diese Anzeige von der serverseitigen Konfiguration abhängig.

      Freundliche Grüsse,

      Vinzenz

    2. Hallo,

      Außerdem interessiert es mich, wie ich automatisiert Befehle an das "ftp"-Programm geben kann, also von einem eigenen Skript aus, da "ftp" ja eigentlich interaktiv zu bedienen ist, und nicht über einen Parameter.
      http://www.informit.com/articles/article.asp?p=170517 könnte Dir in diesem Punkt weiterhelfen.

      Danke, das geht gut. Gibt es eine Möglichkeit sich eine Datei direkt ausgeben zu lassen, ohne sie herunterzuladen? cat <file> geht nicht *gg*.

      Schöne Grüße
      Julian

      --
      "Wer in die Fußstapfen anderer tritt, hinterlässt selbst keinen Eindruck." - Christiane Weinhold
      1. Hallo Julian,

        Danke, das geht gut. Gibt es eine Möglichkeit sich eine Datei direkt ausgeben zu lassen, ohne sie herunterzuladen? cat <file> geht nicht *gg*.

        Überlege doch selbst: Damit die Datei angezeigt werden kann, müssen die anzuzeigenden Daten auf Deinem Rechner vorliegen, d.h. heruntergeladen werden. Die Alternative wäre ein Zugang per ssh.

        Freundliche Grüsse,

        Vinzenz

        1. Hallo,

          Überlege doch selbst: Damit die Datei angezeigt werden kann, müssen die anzuzeigenden Daten auf Deinem Rechner vorliegen, d.h. heruntergeladen werden.

          Dagegen habe ich nichts. Aber kann er die Datei nicht in ein Temp-Verzeichnis laden und mir den Inhalt gleich anzeigen, damit ich nicht erst die Datei lokal speichern muss und sie dann in einem anderen Terminal betrachten?

          Schöne Grüße
          Julian

          --
          "Wer in die Fußstapfen anderer tritt, hinterlässt selbst keinen Eindruck." - Christiane Weinhold
          1. Hallo Julian,

            Dagegen habe ich nichts. Aber kann er die Datei nicht in ein Temp-Verzeichnis laden und mir den Inhalt gleich anzeigen, damit ich nicht erst die Datei lokal speichern muss und sie dann in einem anderen Terminal betrachten?

            Hast Du es schon einmal mit den Zeilen

            ...
                lcd /tmp
                get die.gewuenschte.datei
                ! cat die.gewuenschte.datei
                ...

            in Deinem Skript probiert?

            Freundliche Grüsse,

            Vinzenz

            1. Hi Vinzenz,

              Hast Du es schon einmal mit den Zeilen

              ...
                  lcd /tmp
                  get die.gewuenschte.datei
                  ! cat die.gewuenschte.datei
                  ...

              in Deinem Skript probiert?

              Geniale Idee *g*. Schon wieder danke! Aber wenn du dich so gut auskennst hab ich natürlich noch eine Frage für dich übrig: Gibt es einen bestimmten Befehl um einen kompletten Ordner hochzuladen oder muss ich das mit den Dateien einzelnd machen?

              Schöne Grüße
              Julian

              --
              "Wer in die Fußstapfen anderer tritt, hinterlässt selbst keinen Eindruck." - Christiane Weinhold
              1. Hallo Julian,

                Geniale Idee *g*. Schon wieder danke!

                *freu* Positive Rückmeldungen gehen immer runter wie ein kühles Bier :-)

                Aber wenn du dich so gut auskennst hab ich natürlich noch eine Frage für dich übrig: Gibt es einen bestimmten Befehl um einen kompletten Ordner hochzuladen oder muss ich das mit den Dateien einzelnd machen?

                Das ist nicht trivial :-( Ausser die triviale Version.
                Trivial:
                [1] Im Verzeichnis befinden sich _keine_ Unterverzeichnisse
                [2] Alle Dateien können im gleichen Modus hochgeladen werden

                Vorgehensweise:
                [1] Schalte den interaktiven Modus aus
                    [a] schon beim Aufruf mit 'ftp -i'
                    [b] durch das FTP-Kommando 'prompt'
                [2] Schalte, falls erforderlich, in den Binärmodus mit 'binary'
                [3] Verwende 'mput *'

                Die Reihenfolge von [1] und [2] ist beliebig :-)

                Nichttrivial:
                [1] Dein gewünschtes Verzeichnis kann Unterverzeichnisse enthalten
                [2] Manche Dateien müssen im ASCII-Modus, andere im Binärmodus hochgeladen werden.

                Lösung nach man-page:
                [1] Erstelle ein Archiv mit tar (darf selbstverständlich auch gepackt sein)
                [2] Lade das Archiv im Binärmodus hoch
                [3] Entpacke das Archiv am Zielort

                Problem kann hier Schritt [3] sein.

                Weiterer Lösungsansatz:

                [1] Erstelle eine Liste der hochzuladenden Dateien und Verzeichnisse
                    Werkzeug ist die Option -R des ls-Befehls
                [2] Lass Dir aus dieser Liste Dein ftp-Skript erstellen.
                [3] Führe das FTP-Skript aus

                Punkt [2] wäre noch detaillierter zu behandeln.

                Probiere mal was aus.

                Freundliche Grüsse,

                Vinzenz

                1. Hi,

                  Geniale Idee *g*. Schon wieder danke!
                  *freu* Positive Rückmeldungen gehen immer runter wie ein kühles Bier :-)

                  Dann gleich nochmal eine abschließende: Du hast mir sehr geholfen und du wirst mit Ruhe von mir belohnt.

                  [3] Verwende 'mput *'

                  Das ist eine ganz nette Lösung. Für komplexere Sachen baue ich das dann halt in mein Skript ein.

                  Schöne Grüße
                  Julian