varios todos subdirectorios otro mover los listar ejemplos directorios directorio copiar comandos comando basicos archivos bash cp

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?


Al igual que con cualquier error impreso en STDERR , simplemente STDERR a /dev/null :

cp a b 2> /dev/null


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