todos - ¿Cómo silenciar el comando cp cuando no se encuentra ningún archivo en BASH?
mover todos los archivos de un directorio a otro en linux (6)
Busqué en el map cp
, pero no puedo encontrar una opción silenciosa, por lo que cp no informa "No hay tal archivo o directorio". ¿Cómo puedo hacer que cp
no imprima este error si intenta, pero falla, copiar el archivo?
Bueno, todos han sugerido que redirigir a /dev/null
evitaría que vieras el error, pero aquí hay otra manera. Pruebe si el archivo existe y si lo hace, ejecute el comando cp
.
[[ -e f.txt ]] && cp f.txt ff.txt
En este caso, si la primera prueba falla, entonces cp
nunca se ejecutará y por lo tanto no habrá error.
La solución general es redirigir stderr al bitbucket:
cp old_file new_file 2>>/dev/null
Si lo hace, ocultará cualquier error en su script, lo que significa que fallará silenciosamente en varias circunstancias. Uso >>
lugar de >
en la redirección en caso de que sea necesario usar un archivo de registro en su lugar.
Redireccionar:
cp ... 2>/dev/null
Si desea suprimir sólo los mensajes de error:
cp original.txt copy.txt 2>/dev/null
Si desea suprimir el bot, utilice los mensajes de error y el código de salida:
cp original.txt copy.txt 2>/dev/null || :
rsync -avzh --ignore-missing-args /path/to/source /path/to/destination
ignore-missing-args: los errores ignorados son aquellos relacionados con archivos de origen que no existen