mikrocontroller.net

Forum: PC-Programmierung Meldung: cp: -r wurde nicht angegeben, daher wird das Verzeichnis '/home/pi/xy' ausgelasse


Autor: Fabian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,
ich stehe gerade auf dem Schlauch. Ich möchte Dateien auf einem 
Raspberry kopieren. Dazu verwende ich:
cp /home/pi/xy/* /home/pi/ab -u

Ich erhalte jedes mal die nervige Nachricht:
cp: -r wurde nicht angegeben, daher wird das Verzeichnis '/home/pi/xy' ausgelassen

Da dies Verhalten aber von mir gewünscht ist, würde ich die Nachricht 
gerne unterdrücken. Kann mir jemand sagen, wie ich den cp Befehl 
formulieren muss, damit die Nachricht nicht erscheint?

VG
Fabian

Autor: Fabian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nach dem Absenden ist mir aufgefallen, dass die Nachricht so lautet:
cp: -r wurde nicht angegeben, daher wird das Verzeichnis '/home/pi/xy/unterverzeichnis' ausgelassen

Autor: answerer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
cp [] >> /dev/null ?

Autor: Mario M. (thelonging)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
cp /home/pi/xy/* /home/pi/ab -u 2> /dev/null

Autor: Frank M. (ukw) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mario M. schrieb:
> 2> /dev/null

Das hat den Nachteil, dass man überhaupt keine Fehlermeldungen mehr 
sieht.

@TO: Gib mal 'type cp' ein, um festzustellen, ob da vielleicht ein Alias 
gesetzt ist, der den cp zu solch einer Geschwätzigkeit verführt.

Wenn tatsächlich ein Alias ausgegeben wird, einfach eingeben:
unalias cp

Dann ist zumindest in dieser Shell-Sitzung der Spuk vorbei.

Um das Phänomen permanent abzuschalten sollte man in den folgenden 
Dateien
~/.bashrc
~/.profile
/etc/profile
/etc/bash.bashrc

nach dem Alias suchen und dann die Zeile auskommentieren.

: Bearbeitet durch Moderator
Autor: Mario M. (thelonging)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tja, einen Tod muss man sterben. Cp unterscheidet nicht zwischen Dateien 
und Verzeichnissen, das geht mit der Kombination find/cp. Noch besser 
ist allerdings die Verwendung von rsync.

Autor: mh (Gast)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Frank M. schrieb:
> Dann ist zumindest in dieser Shell-Sitzung der Spuk vorbei.

Welcher Spuk? Das was der TO sieht, ist das erwartete Verhalten von cp. 
Wenn man Ordner kopieren will muss man -r angeben. Wenn man keine Ordner 
kopieren will, sollte man cp keinen Pfad zu einem Ordner geben.

Autor: Rolf M. (rmagnus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mario M. schrieb:
> Cp unterscheidet nicht zwischen Dateien und Verzeichnissen, das geht mit
> der Kombination find/cp.

Doch, es unterscheidet schon. Wenn man eine Datei angibt, wird sie 
kopiert, wenn man ein Verzeichnis angibt, wird es nur kopiert, wenn man 
-r dazuschreibt. Wenn man ein Verzeichnis angibt, aber nicht -r, dann 
sagt cp einem mit der obigen Meldung, dass es nicht kopiert wird, weil 
-r fehlt.

> Noch besser ist allerdings die Verwendung von rsync.

Um alle Dateien, aber nicht Verzeichnisse von einer Quelle zu einem Ziel 
zu kopieren?

Autor: Achim H. (anymouse)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, bei Linux erfolgt die Auflösung von "*" durch die Shell. Das 
bedeutet, "cp" kriegt das Unterverzeichnis bereits als zu kopieren 
übergeben.

Autor: Frank M. (ukw) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mh schrieb:
> Welcher Spuk? Das was der TO sieht, ist das erwartete Verhalten von cp.
> Wenn man Ordner kopieren will muss man -r angeben. Wenn man keine Ordner
> kopieren will, sollte man cp keinen Pfad zu einem Ordner geben.

Natürlich ist das Verhalten prinzipiell so, dass standardmäßig kein 
Ordner kopiert wird. Bisher hatte ich es aber noch nicht erlebt, dass cp 
plötzlich solche hilfreichen Tipps gibt - von wegen fehlender Option 
"-r".

Beispiel - älteres Linux:
# cp /etc /tmp
cp: omitting directory '/etc'

hier wird nicht auf eine eventuell fehlende Option "-r" hingewiesen.

Aber auf einem aktuellen Debian ist dem tatsächlich so:
# cp /etc /tmp
cp: -r not specified; omitting directory '/etc'

Das ist mir bisher noch nicht aufgefallen. Tatsächlich geben neuere 
Versionen von cp schon ohne eine besondere zusätzliche Option diesen 
Tipp.

Ich bin nur auf einen eventuellen Alias gekommen, da immer mehr 
Linux-Distributionen meinen, den unbedarften User vor seiner 
augenscheinlichen Dummheit schützen zu wollen und deshalb zum Beispiel 
das Kommando "rm" per Alias auf "rm -i" umbiegen. Diese Aliase lösche 
ich dann immer aus .bashrc, weil sie eigentlich nur nerven, besonders 
beim Löschen eines Verzeichnisses, z.B. "rm -r scratch". Dann wird man 
plötzlich bei jeder Datei im Unterverzeichnis "scratch" gefragt, ob man 
sie denn wirklich löschen will. Bei mehreren hundert Dateien ist so ein 
Alias überhaupt nicht hilfreich.

: Bearbeitet durch Moderator
Autor: Mario M. (thelonging)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rolf M. schrieb:
>> Noch besser ist allerdings die Verwendung von rsync.
>
> Um alle Dateien, aber nicht Verzeichnisse von einer Quelle zu einem Ziel
> zu kopieren?
rsync -a --exclude="*/" /home/pi/xy/ /home/pi/ab

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.