• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] cp über ein Script ausführen

Hey

wiso geht denn folgender Befehl nicht in einem Script. Direkt in der konsole funzt es wunderbar

Code:
cp file 2006-02-28_21:50:42_file

cp: cannot create regular file `"file"': No such file or directoy

Das file ist da und ich bin root :wink:

By Huflatisch
 
Moin Huflatisch,

magst Du bei deinen zukünftigen Beispielen bitte Variablen deutlicher machen? '$file' ist wirklich verständlicher als 'file'. Und '/bin/$file' würde dem die Sahnehaube aufsetzen.

Ich vermute einfach das Du bei einem Skript den vollen Pfad angeben mußt, was bei einem Aufruf aus dem entsprechenden Verzeichniss egal ist.
 
Moin

ich poste mal das gesamte. Die Pfade sind ausgeschrieben

Code:
#! /bin/bash
FDAT=$(stat /test/a.a |grep Modify |cut -f2 -d' ')
FMIN=$(stat /test/a.a |grep Modify |cut -f3 -d' ' |cut  -f1 -d.)
FTIME=$FDAT\_$FMIN
VERZ=/test/
DATEI=a.a
NDATEI=$VERZ$FTIME-$DATEI

/bin/cp $VERZ$DATEI $NDATEI

ein echo von NDATEI=$NDATEI ergibt
Code:
NDATEI=/test/2006-02-28_21:50:42-a.a
und das echo von $VERZ$DATEI $NDATEI ergibt
Code:
/test/a.a /test/2006-02-28_21:50:42-a.a


By Huflatisch
 
also wenns die datei und das verzeichnis wirklich gibt, sehe ich keinen grund warum das nicht funktionieren sollte. klappts denn, wenn du NDATEI einen einfacheren namen (z.b. a.neu) gibst?
 
Ich würde die Filenamen mit doppelten Anführungszeichen schützen. Der : ist ein Shell-Builtin.

Code:
/bin/cp $VERZ$DATEI "$NDATEI"
 
Dateinamen immer Quoten... egal was passiert, das schadet nie.

und tools aus /bin/... muss man an sich nicht mit vollem Pfad ansprechen, /bin/ sollte immer im Pfad zu finden sein.
 
Hey

Es funzt. So richtig weis ich auch nicht warum. Ich habe das Script nochmal komplett neu geschrieben (so wie oben gepostet). Ich hatte bestimmt irgenwo einen Fehler drin. Vermutlich ein Leerzeichen im Dateinamen.

Danke an alle die geholfen haben.

By Huflatisch
 
Oben