Ich habe einen Ordner auf meinem Server, der einige Dateien enthält. Diese sind automatisiert, was bedeutet, dass wir jeden Tag automatisch neue Dateien erhalten, die die alten überschreiben. Also wollen Sie ein Backup für diese Daten machen. Wie kann ich all diese Dateien in einen anderen Ordner kopieren, indem ich die Dateien beim Kopieren mit dem aktuellen Datum umbenenne?
Beispiel: Ich habe einen Ordner namens Ordner1, der 4 Dateien enthält. Der Pfad für diesen Ordner lautet home / install / project1 / folder1
aaa.dat
bbb.dat
ccc.dat
ddd.dat
Jetzt möchte ich alle diese vier Dateien in einen anderen Ordner mit dem Namen folder2 kopieren. Der Pfad für diesen Ordner lautet home / install / project1 / folder2. beim kopieren dieser dateien möchte ich jede datei umbenennen und das aktuelle datum zur datei hinzufügen. so sollten meine dateinamen in folder2 sein ..
aaa091012.dat
bbb091012.dat
ccc091012.dat
ddd091012.dat
Ich möchte eine schreiben Linux
Shell-Skript für diese. Bitte geben Sie mir eine Idee oder einige Beispielskripte dazu.
Antworten:
quelle
$srcfile
wird eigentlich nur gleich sein$srcdir
.srcdir
um sicherzustellen, dass es das ist, was OP erwartet.$dstfile
wird z.B.home/install/project1/folder1/aaa091012.dat
, so$dstdir/$dstfile
wird z.B.home/install/project2/folder2/home/install/project1/folder1/aaa091012.dat
.Sie können dies zunächst in 2 Schritten tun
cp
:Dann benutze
rename
. Aber du solltest Ubuntu verwenden, was eigentlich Perl-Skript ist. Unter Umständen können Sie Redhat von installieren oder herunterladen https://metacpan.org/module/rename . Leider unterstützt die native Redhat / Fedora-Umbenennung keine regulären Perl-Ausdrücke und funktioniert daher nicht.Verwenden Sie auf jeden Fall Perl-ish
rename
so was:Sie können es sogar rekursiv verwenden, indem Sie es mit kombinieren
find
undxargs
, so etwas wie:quelle
das hat bei mir geklappt:
quelle