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

cp ohne "Verzeichnis ausgelassen"

Hallo,

ich habe einen cronjob, der Dateien per cp kopiert.
Nun bekomme ich immer "Fehlerneldungen" als Mail in der Art:
cp: Verzeichnis ausgelassen 'bla'

Wenn ich alles per 2>/dev/null unterdrücke, gehen mir ja auch echte Fehler durch die Lappen.

Hat cp tatsächlich keinen switch, um das abzuschalten?

Falls nicht, fiele mir nur eine komplizierte Konstruktion ein, wo ich alles in eine Datei umleite und "Verzeichnis ausgelassen" ausfiltere :?

Aber das muss doch einfacher gehen, oder?
 
Vermutlich versuchst Du ohne eine echte Schleife mehrere Dateien zu kopieren die eine Gemeinsamkeit haben. Die bash wertet den Ausdruck dann zwar aus, verwendet dann aber nur den letzten Treffer. Für solche Zwecke brauchst Du ein kleines Skript das eine Schleife enthält die bei jedem ausgewerteten Ausdruck auch den Kopierbefehl ausführt.

Beispiele solltest Du hier im Forum genug finden, ansonsten findet sich bestimmt einer der Skriptgurus der dir ein Beispiel bastelt.
 
Code:
17:49 ichi:/dev/shm > cp * foo 2>&1 | grep -v "Verzeichnis"
/bin/cp: omitting directory `foo'
/bin/cp: omitting directory `sysconfig'
Also portabel ist das mit grep natürlich nicht. Aber verwende doch cp -a oder find ..|xargs -I
 
haveaniceday schrieb:
cp ..... 2>&1 | grep -v "Verzeichnis ausgelassen"

so geht's :)
Auf das 2>&1 | Konstrukt bin ich auf die Schnelle nicht gekommen. Danke!

@jengelh:
cp -a oder -r kann ich nicht verwenden, denn ich möchte in dem Fall keine Unterordner kopieren.
 
jengelh schrieb:
Code:
17:49 ichi:/dev/shm > cp * foo 2>&1 | grep -v "Verzeichnis"
/bin/cp: omitting directory `foo'
/bin/cp: omitting directory `sysconfig'
Also portabel ist das mit grep natürlich nicht.

das ist ein interessantes Problem.
Kann man eigentlich die verwendete Sprache immer aus "$LANG" herauslesen?
In dem Fall könnte man ja was verwenden wie:

Code:
#!/bin/bash

function GetLang() {
if [ -z $LANG ]
then
    RESULT=en # default
else
    RESULT="${LANG:0:2}"
fi

echo $RESULT
}


# echo "LANG=[$LANG]"

LANGUAGE=`GetLang`
echo "LANGUAGE=$LANGUAGE"

# Beispiel
echo -n "Sprache ist "
case "$LANGUAGE" in
    "de")
  echo "deutsch"
    ;;

    "en")
  echo "englisch"
    ;;

    *)  # else..
        echo "sonstwas"
    ;;
esac

Oder ist das nicht portabel?
 
Oben