staging.inyokaproject.org

Kopieren Befehl mit "&" am Ende

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

johst

Anmeldungsdatum:
28. Dezember 2006

Beiträge: Zähle...

Hallo, habe heute versucht Daten von einem USB Stick auf einen Server zu kopieren. Habe dabei in zwei verschiedenen Befehlen zwei Fehler gemacht (vermutlich).

1. Befehl cp -vR /USBStick/Daten //Video/Daten* /Server/Daten/Video/Daten/ Hier ist der erste Fehler aufgetreten. Das zweite "/"-Zeichen in der Mitte des Quellenpfades war zu viel.

2. Befehl cp -vR /USBStick/Daten/Video/Daten* /Server/Daten/Video/Daten/ & Habe das "&"-Zeichen aus Gewohnheit hinzugefügt. Auf meinem Linux-Receiver kann ich nach Eingabe des & das Terminal schließen. Der Befehl wird weiter im Hintergrund ausgeführt.

Fakt ist, dass der gesamte Inhalt des Ordner "Video" verschwunden ist und ich kann mir nicht erklären warum. Könnte mich bitte jemand aufklären?

Doc_Symbiosis

Avatar von Doc_Symbiosis

Anmeldungsdatum:
11. Oktober 2006

Beiträge: 4212

Hm, liegt das nicht im Ordner /Server/Daten/Video/Daten/Daten?

johst

(Themenstarter)

Anmeldungsdatum:
28. Dezember 2006

Beiträge: 45

Leider nicht.

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 10978

johst schrieb:

Hallo, habe heute versucht Daten von einem USB Stick auf einen Server zu kopieren. Habe dabei in zwei verschiedenen Befehlen zwei Fehler gemacht (vermutlich).

1. Befehl cp -vR /USBStick/Daten //Video/Daten* /Server/Daten/Video/Daten/ Hier ist der erste Fehler aufgetreten. Das zweite "/"-Zeichen in der Mitte des Quellenpfades war zu viel.

Das wundert mich, mehrfache Pfad-Trenner werden von Linux normalerweise ignoriert (// wird wie ein / behandelt). Ich hätte da eher vermutet, dass das markierte Leerzeichen dafür gesorgt hat, dass ein nicht existierender Pfad angegeben wurde.

2. Befehl cp -vR /USBStick/Daten/Video/Daten* /Server/Daten/Video/Daten/ & Habe das "&"-Zeichen aus Gewohnheit hinzugefügt. Auf meinem Linux-Receiver kann ich nach Eingabe des & das Terminal schließen. Der Befehl wird weiter im Hintergrund ausgeführt.

Hintergrundprozesse werden abgebrochen, wenn du das Terminal schließt (und nicht ein Tool wie screen oder tmux nutzt, das die Shell-Sitzung kapselt und im Hintergrund weiter leben lässt). Wenn du einen Prozess unabhängig vom Terminal bzw. der Lebensdauer der Shell-Session ausführen willst, in der er gestartet wurde, kannst du nohup oder disown nutzen: Shell/Prozesssteuerung (Abschnitt „Prozess-von-der-Shell-abkoppeln“)

Doc_Symbiosis

Avatar von Doc_Symbiosis

Anmeldungsdatum:
11. Oktober 2006

Beiträge: 4212

Also zumindest auf dem USB-Stick sollten die Daten ja nach wie vor noch vorhanden sein, weil Du sie ja nur kopiert hast.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17432

johst schrieb: Bitte Codeblöcke verwenden, wie die anderen auch. 3. Button von rechts im Onlineeditor.

1
cp -vR /USBStick/Daten //Video/Daten* /Server/Daten/Video/Daten/

Hier ist der erste Fehler aufgetreten. Das zweite "/"-Zeichen in der Mitte des Quellenpfades war zu viel.

Sagt wer?

Das Leerzeichen vor dem //Video ist zu viel, wie seahawk1986 richtig feststellt.

1
2
3
4
5
cp --help
Aufruf: cp [OPTION]... [-T] QUELLE ZIEL
 oder:  cp [OPTION]... QUELLE... VERZEICHNIS
 oder:  cp [OPTION]... -t VERZEICHNIS QUELLE...
Kopieren von QUELLE nach ZIEL, oder mehrere QUELLE(n) in VERZEICHNIS

Du hast ungewollt Muster 2 ausgelöst und /USBStick/Daten sowie //Video/Daten* nach /Server/Daten/Video/Daten/ kopiert, wobei es ein ziemlicher Zufall wäre, wenn /Video/Daten* existieren würde. Sonst müsste eine Meldung wie

1
cp: Aufruf von stat für '//Video/Daten*' nicht möglich: Datei oder Verzeichnis nicht gefunden

Slashes sind Pfadtrenner. a/b/c ist das selbe wie a//b/c oder a/b//c oder a//b//c.

2. Befehl cp -vR /USBStick/Daten/Video/Daten* /Server/Daten/Video/Daten/ & Habe das "&"-Zeichen aus Gewohnheit hinzugefügt. Auf meinem Linux-Receiver kann ich nach Eingabe des & das Terminal schließen. Der Befehl wird weiter im Hintergrund ausgeführt.

Fakt ist, dass der gesamte Inhalt des Ordner "Video" verschwunden ist und ich kann mir nicht erklären warum. Könnte mich bitte jemand aufklären?

Es ist von 2 Ordnern namens Video die Rede. Hast Du in Wahrheit ein mv gemacht? War er nach dem ersten Befehl noch da? War das auch schon ein mv?

johst

(Themenstarter)

Anmeldungsdatum:
28. Dezember 2006

Beiträge: 45

So viele Fragen, wo soll ich anfangen?

@user_unknown

1. Sorry für die nicht vorhandenen Codeblöcke.

2. Wo der Fehler aufgetreten sein könnte sagt natürlich niemand. Sind lauter Vermutungen basierend auf meinem kaum vorhandenen Linux Wissen.

3. Das mit dem ausgelösten Muster 2 habe ich nicht verstanden. Was meinst du genau damit? In dem Ordner /Video/ waren 24 Ordner, mit unterschiedlichen Namen alle mit "Daten" beginnend. Absicht war diese auf den Server zu kopieren. Daher die Schreibweise "Daten*".

4. Das zwei Slashes gleich interpretiert werden wie eins war mir nicht bekannt. Danke für die Info. Also können wir das ausschließen.

5. Es wurde mit Sicherheit nicht mv verwendet. Habe mir die Befehle und die Ausgaben aus dem Terminal, um den Fehler eventuell zu finden, in einer Text-Datei gespeichert.

@seahawk1986

6. Das mit screen hatte ich auch früher auch immer genutzt. Ist sogar noch installiert auf dem Server. Hatte aber, wie erwähnt, in einem anderen Forum gelesen (VU), dass bei dem besagten LINUX Sat-Receiver das & am Ende des cp-Befehles auch das "Selbe" bewirkt. Dort klappt es auch. Dachte das wäre generell für Linux gültig.

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 10978

johst schrieb:

Hatte aber, wie erwähnt, in einem anderen Forum gelesen (VU), dass bei dem besagten LINUX Sat-Receiver das & am Ende des cp-Befehles auch das "Selbe" bewirkt. Dort klappt es auch. Dachte das wäre generell für Linux gültig.

Ich weiß nicht, wie das auf der VU umgesetzt ist, eventuell haben die eine Lösung eingebaut, um die Shell-Session am Leben zu erhalten, aber generell würde ich davon ausgehen, dass in den Hintergrund geschickte Jobs mit dem Beenden der Shell-Session bzw. dem Schließen des Terminals beendet werden, wenn man keine der oben genannten Vorkehrungen trifft.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17432

johst schrieb:

So viele Fragen, wo soll ich anfangen?

@user_unknown

1. Sorry für die nicht vorhandenen Codeblöcke.

2. Wo der Fehler aufgetreten sein könnte sagt natürlich niemand. Sind lauter Vermutungen basierend auf meinem kaum vorhandenen Linux Wissen.

3. Das mit dem ausgelösten Muster 2 habe ich nicht verstanden.

Die Kurzhilfe zeigt 3 Muster, wie man das Programm aufrufen kann.

Du wolltest, vereinfacht gesagt,

1
cp "a b" c

hast aber, wegen des Leerzeichens, wenn Du das richtig kopiert hast

1
cp a b c

aufgerufen. Das letzte Argument ist das Zielverzeichnis, das davor sind mehrere Quellen.

5. Es wurde mit Sicherheit nicht mv verwendet. Habe mir die Befehle und die Ausgaben aus dem Terminal, um den Fehler eventuell zu finden, in einer Text-Datei gespeichert.

Da sind sie ja gut aufgehoben ☺

Kopier doch alles hier rein, in einen Codeblock. Wenn Du auch die Fehlermeldungen nicht verstehst - wir verstehen sie vielleicht.

johst

(Themenstarter)

Anmeldungsdatum:
28. Dezember 2006

Beiträge: 45

Das weiß ich auch nicht, aber es funktioniert. Werde aber versuchen, in Zukunft das auf dem PC zu unterlassen.

Antworten |