Ich habe map cp
gesucht, kann aber keine leise Option finden, so dass cp nicht "Keine solche Datei oder Verzeichnis" meldet. Wie kann ich festlegen, dass cp
diesen Fehler nicht druckt, wenn versucht wird, die Datei zu kopieren?
Nun, jeder hat vorgeschlagen, dass die Umleitung zu /dev/null
Sie den Fehler nicht sehen kann, aber hier ist ein anderer Weg. Testen Sie, ob die Datei vorhanden ist, und führen Sie gegebenenfalls den Befehl cp
aus.
[[ -e f.txt ]] && cp f.txt ff.txt
Wenn der erste Test fehlschlägt, wird in diesem Fall cp
niemals ausgeführt und daher kein Fehler.
Wenn Sie nur die Fehlermeldungen unterdrücken wollen:
cp original.txt copy.txt 2>/dev/null
Wenn Sie die Fehlermeldungen und den Exit-Code unterdrücken möchten, verwenden Sie:
cp original.txt copy.txt 2>/dev/null || :
Die allgemeine Lösung besteht darin, stderr zum Bitbucket umzuleiten:
cp old_file new_file 2>>/dev/null
Dadurch werden alle Fehler in Ihrem Skript ausgeblendet, was bedeutet, dass es unter verschiedenen Umständen lautlos fehlschlägt. Ich verwende >>
anstelle von >
in der Weiterleitung, falls stattdessen eine Protokolldatei verwendet werden muss.
Wie für jeden Fehler, der an STDERR ausgegeben wird, leiten Sie ihn einfach an /dev/null
:
cp a b 2> /dev/null
Umleiten:
cp ... 2>/dev/null
rsync -avzh --ignore-missing-args /path/to/source /path/to/destination
ignore-missing-args - Fehler, die ignoriert werden, beziehen sich auf nicht vorhandene Quelldateien