Verzeichnis der Datei

Hallo,
ich bastel grad ein backup-Script,
ich habe das Hauptverzeichnis „root/xyz“, darin befinden sich mehrere Unterverzeichniss.
Mein Backupverzeichnis lautet „root/xyz_backup“.
Nun habe ich ein Script, welches das Hauptverzeichnis rekursiv durchläuft und die Dateien überprüft, sobald eine Datei eine best. Dateigröße überschritten hat soll diese in das Backupverzeichnis kopiert werden. Wichtig dabei ist, das die Datei auch im richtigen unterverzeichnis landet,
also „root/xyz/1/datei.txt“ --> „root/xyz_backup/1/datei.txt“

Wie finde ich das Unterverzeichnis raus?

WWW?

Gruß

Marcel

Hallo,

ich bastel grad ein backup-Script,
ich habe das Hauptverzeichnis „root/xyz“, darin befinden sich
mehrere Unterverzeichniss.
Mein Backupverzeichnis lautet „root/xyz_backup“.
Nun habe ich ein Script, welches das Hauptverzeichnis rekursiv
durchläuft und die Dateien überprüft, sobald eine Datei eine
best. Dateigröße überschritten hat soll diese in das
Backupverzeichnis kopiert werden.

Das geht unter GNU/Linux auch mit find recht einfach:
find ./ -type f -size +1024k
findet dir alle Dateien im aktuellen Verzeichnis und darunter, die min. 1MB gross sind.

Wichtig dabei ist, das die
Datei auch im richtigen unterverzeichnis landet,
also „root/xyz/1/datei.txt“ -->
„root/xyz_backup/1/datei.txt“

Wie finde ich das Unterverzeichnis raus?

indem du den absoluten Dateinamen nimmst, also bei dir
$_ = „/root/xyz/1/datei.txt/“;
(weisst du, wie du das hinkriegst? wenn nein, frag nochmal nach…)
und dann ersetzt:
s|^/root/xyz|/root/xyz_backup|;

Grüße,
Moritz

[erledigt!] DANKE Re^2: Verzeichnis der Datei
Hi Moritz,

Das geht unter GNU/Linux auch mit find recht einfach:
find ./ -type f -size +1024k
findet dir alle Dateien im aktuellen Verzeichnis und darunter,
die min. 1MB gross sind.

jepp, aber ist leidder windoof *g*

indem du den absoluten Dateinamen nimmst, also bei dir
$_ = „/root/xyz/1/datei.txt/“;
(weisst du, wie du das hinkriegst? wenn nein, frag nochmal
nach…)

Ja, den kompletten Pfad bekomme ich raus

und dann ersetzt:
s|^/root/xyz|/root/xyz_backup|;

und das ist so einfach wie genial,
klasse, ich hab die ganze Zeit gesucht wie ich nur das Unterverzeichnis auslesen kann, aber so ist’s ja viel einfacher und besser.

Besten Dank,

Gruß Marcel

Hallo,

Das geht unter GNU/Linux auch mit find recht einfach:
find ./ -type f -size +1024k
findet dir alle Dateien im aktuellen Verzeichnis und darunter,
die min. 1MB gross sind.

jepp, aber ist leidder windoof *g*

Perl wäre nicht Perl, wenn es keine native Perl-Lösung gäbe.
Das Modul File::Find::Rule kann das alles :wink:

use File::Find::Rule;
my $r = File::Find::Rule-\>new;
$r-\>file;
$r-\>size("\>1M");
my @files = $r-\>in($verzeichnis);

Grüße,
Moritz