Zeilenumbruch manipuliert Pfadangabe?

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

Macs406

Benutzer
Registriert
13. Juni 2015
Beiträge
5
Reaktionspunkte
0
Punkte
0
Hallo Ihr Profis,

da ich nach stundenlanger Suche und Versuchen nicht weiterkomme, will ich doch mal eine Frage stellen, auf die ich keine Antwort gefunden habe. Ich muß dazusagen, daß ich absoluter Anfänger bin und bisher noch kein Script erstellt hatte.

Ich möchte von meiner USB-Platte mehrere Verzeichnisse auf das Volume1 kopieren. Bisher habe ich das für jedes Verzeichnis über SSH immer händisch gemacht, z.B.

cp -r -p /volumeUSB1/usbshare/LocalBackup/Public/* /volume1/Public

Nun habe ich dafür ein Script "restore.sh" erstellt und folgendes eingetragen:

cp -r -p /volumeUSB1/usbshare/LocalBackup/Public/* /volume1/Public
cp -r -p /volumeUSB1/usbshare/LocalBackup/Photo/* /volume1/Photo

In beiden Verzeichnissen "/volumeUSB1/usbshare/LocalBackup/Public" und "/volumeUSB1/usbshare/LocalBackup/Photo" befinden sich 2 Verzeichnisse (Test1, Test2) und in jedem Verzeichnis je eine "Hallo.txt".
Wenn ich das Script als root mit "sh restore.sh" ausführe, erhalte ich folgende Rückmeldung:

/TEST1': No such file or directoryme1/Public
/TEST2': No such file or directoryme1/Public

Die beiden Verzeichnisse inkl Dateien von "/volumeUSB1/usbshare/LocalBackup/Photo" wurden kopiert aber und für Public erhalte ich die Fehlermeldung.
Nach ein paar Versuchen habe ich herausgefunden, daß das daran liegt, daß ein Zeilenumbruch innerhalb des Scripts wohl irgendwie interpretiert wird, denn wenn ich in das Script nur eine Copy-Anweisung schreibe und am Zeilenende kein "Return" drücke, klappt alles wunderbar, so wie ja auch für das Verzeichnis "/volumeUSB1/usbshare/LocalBackup/Photo", wo ja auch kein Return hinter "Photo" folgt. Füge ich hier ein Return ein, erhalte ich auch hier die Fehlermeldung.
Auch habe ich schon mit Anführungszeichen gearbeitet...

cp -r -p "/volumeUSB1/usbshare/LocalBackup/Public/*" "/volume1/Public"

...aber das klappt leider garnicht.

Wo liegt der Fehler?

Vielen Dank für Eure Unterstützung!

Mark
 
Hallo,
womit erstellst/bearbeitest Du das Sript? Linux und Windows verwenden unterschiedliche Zeilenumbrüche.

Gruß Götz
 
Hallo,
lade Dir notepad++ und bearbeite damit. Dort kann man einstellen welche Zeilenumbrüche haben will (auf Unix umstellen).

Gruß Götz
 
VIELEN VIELEN DANK GÖTZ! Besonders für die superschnelle Antwort!

Auf sowas muß man erstmal kommen, daß es bei den Zeilenumbrüchen da Unterschiede gibt.
Ich hatte hier noch einen anderen Texteditor, bei dem man das Dateiformat UNIX auswählen konnte. 1x neu abgespeichert und schon ist alles grün.

Also vielen Dank nochmal! Nun kann ich das Script laufen lassen und draußen die Sonne genießen.
 
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