Virtuelles Dateisystem in Perl

9

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 ...

    
kobame 14.07.2013, 07:48
quelle

4 Antworten

1

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.

    
Jose Faeti 09.03.2015, 09:33
quelle
1

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.

    
Piotr Wadas 14.07.2013 08:06
quelle
1

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 Ссылка

an

Sie 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:

Ссылка

    
Jiri Klouda 05.09.2013 14:24
quelle
0

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 werden

Ich 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.

    
JoshSN 12.08.2014 04:51
quelle

Tags und Links