Via Script Dateien verschieben und vorhandene wenn älter überschreiben

Status
Für weitere Antworten geschlossen.

DonCamillo82

Benutzer
Mitglied seit
10. Okt 2018
Beiträge
4
Punkte für Reaktionen
0
Punkte
1
Moin,

ich würde gerne folgendes via Aufgabenplanung und Script realisieren.

Alle Dateien in Ordner A via Script in Ordner B verschieben sowie ältere Dateien in Order B dann überschreiben.

Hintergrund ist, im Ordner A (was eine Freigabe ist) werden verschiedene .VHDX Dateien hineingesichert.

Nun die Idee, die Daten aus der Freigabe in ein Verzeichniss auf der NAS zu verschieben wo sonst keiner Zugriff von außen hat.

Ich habe es mit folgendem Script probiert:

mv /volume1/OrdnerA/Tag1/* /volume1/OrdnerB/Tag1/

Dies funktioniert auch, wenn Ornder B leer ist. Sobald hier schon Dateien drin sind macht er nix mehr und bringt den Fehler: Directory not empty

Ich habe auch schon versucht mit mv -f oder mv -u das Ganze laufen zu lassen, leider ohne Erfolg.

Im Einsatz ist hier eine DS214+ mit DSM 6.2.1

Vielleicht habt ihr eine Idee.

Vielen Dank

Gruß Don
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.547
Punkte für Reaktionen
1.390
Punkte
234
Ich habe gerade bei mir die Verzeichnisse test und test2 angelegt. In jedes Verzeichnis eine gleichlautende Datei mit verschiedenem Inhalt.

Dann habe ich das hier ausgeführt:
Rich (BBCode):
mv /test/* /test2/

Funktioniert. Verzeichnis test ist leer, Verzeichnis test2 enthält die Datei aus Verzeichnis test und die Datei, die vorher in test2 lag ist überschrieben worden.

Hast du Freizeichen oder sonstiges Gedöns (äöü etc.) im Pfad?
 

DonCamillo82

Benutzer
Mitglied seit
10. Okt 2018
Beiträge
4
Punkte für Reaktionen
0
Punkte
1
Es gibt Freizeichen in den Unterordnern die kopiert werden sollen.

Also wie folgt:

Ordner A mit folgendem Inhalt;

/volume1/OrdnerA/Tag1/VM-Test/Virtual Hard Disks/VM-TEST-VM1.vhdx

Diers nach Ordner B

/volume1/OrdnerB/Tag1/VM-Test/Virtual Hard Disks/VM-TEST-VM1.vhdx

Macht dann hier der zukopierende Unterordner "Virtual Hard Disks" das Problem?
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.547
Punkte für Reaktionen
1.390
Punkte
234
Setze den betreffenden Teil mit Freizeichen in Anführungsstriche. Beispiel:
Rich (BBCode):
/volume1/OrdnerA/Tag1/VM-Test/"Virtual Hard Disks"/VM-TEST-VM1.vhdx

Damit so was nicht passiert und nie Probleme macht:
Sonderzeichen, Umlaute, Freizeichen sollte man in Verzeichnis- und Dateinamen grundsätzlich, wenn möglich, immer vermeiden.
 

DonCamillo82

Benutzer
Mitglied seit
10. Okt 2018
Beiträge
4
Punkte für Reaktionen
0
Punkte
1
Mein Script sah ja wie folgt aus:

mv /volume1/OrdnerA/Tag1/* /volume1/OrdnerB/Tag1/

Heißt der Ordner mit den Freizeichen war ein zukopierender Unterordner

Falls es hierzu keine Lösung gibt, muss ich wohl einen MV Befehl für jede VHDX machen.
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.547
Punkte für Reaktionen
1.390
Punkte
234
Falls es hierzu keine Lösung gibt
Doch, gibt es:
Setze den betreffenden Teil mit Freizeichen in Anführungsstriche

Nach deinem Pfad also in etwa so:
Rich (BBCode):
mv /volume1/OrdnerA/Tag1/VM-Test/"Virtual Hard Disks"/* /volume1/OrdnerB/Tag1/VM-Test/"Virtual Hard Disks"/
oder
Rich (BBCode):
mv /volume1/OrdnerA/Tag1/VM-Test/Virtual\ Hard\ Disks/* /volume1/OrdnerB/Tag1/VM-Test/Virtual\ Hard\ Disks/

Nimm dir ein Testverzeichnis und teste ein wenig rum.

Deine Möglichkeiten sind Backslash oder Anführungszeichen.
Lese auch mal u.a. hier:
https://www.linuxforen.de/forums/showthread.php?133393-Leerzeichen-in-der-Konsole
 
Zuletzt bearbeitet:

NSFH

Benutzer
Sehr erfahren
Mitglied seit
09. Nov 2016
Beiträge
3.990
Punkte für Reaktionen
517
Punkte
174
nur zur Info: Wenn im Ordnernamen Umlaute sind klappt es nicht!
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat