perl - Verschieben von Dateien mit Wildcard

8

Ist es möglich, perls move -Funktion vom File::Copy -Modul zu verwenden, um mehrere gängige Dateien mit derselben Dateierweiterung mit einem Platzhalter zu verschieben? Bis jetzt kann ich move nur zum Arbeiten bringen, wenn ich die Dateien explizit benenne.

Ich wollte zum Beispiel so etwas machen:

%Vor%

Im Moment kann ich eine Datei so machen:

%Vor%

Was ich am Ende meines Perl-Programms tun möchte, verschiebe all diese Dateien namens *.dat in ein Archivverzeichnis.

    
jdamae 24.10.2011, 21:45
quelle

3 Antworten

10

Sie können Perls glob -Operator verwenden, um die Liste der Dateien zu erhalten, die Sie öffnen müssen:

%Vor%

Dies hat den Vorteil, dass Sie sich nicht auf einen Systemaufruf verlassen müssen, der nicht portierbar, systemabhängig und möglicherweise gefährlich ist.

EDIT : Ein besserer Weg, dies zu tun, besteht darin, das neue Verzeichnis anstelle des vollständigen neuen Dateinamens anzugeben. (Tut mir leid, dass ich nicht früher darüber nachgedacht habe!)

%Vor%     
Platinum Azure 24.10.2011, 21:54
quelle
4

Aus der Datei :: Kopieren Dokumentation :

  

Wenn das Ziel bereits existiert und ein Verzeichnis und die Quelle ist   ist kein Verzeichnis, dann wird die Quelldatei in die umbenannt   Verzeichnis angegeben durch das Ziel.

%Vor%     
TLP 24.10.2011 22:34
quelle
0

Vielleicht haben Sie mehr Glück mit der System -Funktion (obwohl Sie damit vorsichtig sein müssen).

%Vor%     
Chriszuma 24.10.2011 21:51
quelle

Tags und Links