J'ai cherché map cp
, mais je ne trouve aucune option silencieuse, de sorte que cp ne signale pas "Aucun fichier ou répertoire de ce type". Comment faire pour que cp
n'imprime pas cette erreur s'il tente, mais échoue, de copier le fichier?
Tout le monde a bien suggéré que la redirection vers /dev/null
vous empêcherait de voir l'erreur, mais voici une autre solution. Testez si le fichier existe et si c'est le cas, exécutez la commande cp
.
[[ -e f.txt ]] && cp f.txt ff.txt
Dans ce cas, si le premier test échoue, alors cp
ne s'exécutera jamais et donc aucune erreur.
Si vous souhaitez supprimer uniquement les messages d'erreur:
cp original.txt copy.txt 2>/dev/null
Si vous souhaitez supprimer les messages d'erreur et le code de sortie, utilisez:
cp original.txt copy.txt 2>/dev/null || :
La solution générale consiste à rediriger stderr vers le bitbucket:
cp old_file new_file 2>>/dev/null
Cela masquerait les bogues de votre script, ce qui signifie qu'il échouerait silencieusement dans diverses circonstances. J'utilise >>
plutôt que >
dans la redirection au cas où il serait nécessaire d'utiliser un fichier journal.
Comme pour toute erreur imprimée sur STDERR , redirigez-le simplement vers /dev/null
:
cp a b 2> /dev/null
Réorienter:
cp ... 2>/dev/null
rsync -avzh --ignore-missing-args /path/to/source /path/to/destination
ignore-missing-args - les erreurs ignorées sont celles liées aux fichiers source non existants