Ich suche nach einer virtuellen Dateisystemebene in Perl. Etwas, das eine allgemeine Abstraktion für grundlegende Dateisystemroutinen wie ls
, mkdir
usw. liefern würde, unabhängig davon, wie das eigentliche Dateisystem implementiert ist.
Ich hätte gerne eine solche Schnittstelle:
%Vor%Ich habe das VFS-Paket auf MetaCPAN gefunden, leider gibt es nur leere, nicht implementierte Module.
Ist etwas bereits implementiert? Im Moment suche ich nur nach "lokalen" Dateisystemen und ftp oder ssh-Ich brauche kein Datenbank- "Dateisystem" oder irgendein anderes exotisches "Dateisystem" wie CVS oder so. Das Durchsuchen von 20k MetaCPAN-Modulen ist schmerzhaft ohne ein Tagging-System oder ähnliches ...
Vielleicht File :: System ist was du suchst. Es bietet grundlegende Funktionen, die in gängigen Betriebssystemen zur Verwaltung eines virtuellen Dateisystems (nicht notwendigerweise nur aus Dateien und Verzeichnissen) enthalten sind.
Die meisten Funktionen werden als Methode der Datei dargestellt: : System :: Object Paket.
Was ist mit einer FUSE-Implementierung? (Dateisystem im Benutzerbereich)? Ich würde vermuten, dass mindestens ein Pseudo-Dateisystem in Perl implementiert ist. Schließlich sollte es ziemlich einfach zu implementieren sein, im Grunde ist es nicht mehr als eine Reihe von Operationen wie mount, ls, df, stat und so weiter. Ich war mal durch autofs Quellen in C, sah ziemlich unkompliziert aus. Vielleicht möchten Sie auch Ссылка sehen.
Seien Sie nicht zu sehr mit dem Modul-Ansatz beschäftigt. Alles, was Sie brauchen, ist ein Dienstprogramm, das das SSH / FTP-Dateisystem als lokales Dateisystem einbindet, und dann werden Sie einfach Standardbefehle wie cd, mkdir und so weiter verwenden. Der Grund, warum Sie keine Module dafür sehen, ist, dass dieser Ansatz im Allgemeinen bevorzugt wird.
Schauen Sie sich Ссылка
anSie werden einfach FUSE verwenden, um eines dieser Dateisysteme zu mounten, und das ist es. Hier sind einige Links zu sehen, aber die meisten davon können auch in den meisten Distributionen als Pakete erhalten werden.
Hier ist ein Modul, um einfach FUSE-Dateisysteme in Perl zu mounten:
Es gibt eine Menge von File :: * Modulen, die verschiedene Teile der plattformübergreifenden Dateisystemverwaltung handhaben.
Zum Beispiel:
%Vor%Erlaubt es Ihnen, meine $ filename = catfile $ root, $ path, "$ filename. $ ext"; oder mein $ new_directory = catfile $ path, "new_sub_directory"; und stellen Sie sicher, dass Sie die richtigen Trennzeichen verwenden, z. / oder \, und so weiter.
Eine andere Sache, die Sie scheinen wollen, kann mit haben:
%Vor%Das ist ziemlich praktisch und kann wie make_path ($ new_directory, {mode = & gt; 0755});
aufgerufen werdenIch bin mir nicht sicher, ob File :: System entfernte Systeme tatsächlich so behandelt, wie Sie es möchten.
Es gibt ein paar verschiedene Möglichkeiten, damit umzugehen, aber ich denke, Net :: SSH :: Expect ist das, was ich in der Vergangenheit benutzt habe, und es ist nicht so schlimm, obwohl Sie wahrscheinlich eine leichtere Zeit haben würden Wenn Sie das Remote-Dateisystem irgendwie lokal mounten könnten, tun Sie, was Sie tun müssen, und dann unmounten Sie es.
Tags und Links perl