Quiero ejecutar este comando en segundo plano porque el proceso podría llevar mucho tiempo. ¿Cómo puedo enviarlo a un proceso en segundo plano?
find /tmp/ -type f -mtime +3 | xargs rm -Rf
Esto no funciona:
find /tmp/ -type f -mtime +3 | xargs rm -Rf &
¿Cómo puedo hacer esto en su lugar?
Respuestas:
Si desea ejecutar ambos en segundo plano, colóquelos en una subshell:
Pero, por favor, no hagas esto . La
find
salida de la tuberíaxargs
no es segura a menos que use las siguientes opciones, que son compatibles con GNU y BSDfind
yxargs
:Si
find
devuelve archivos con espacios en su nombre, podría, sin siquiera saberlo, eliminar irreversiblemente las carpetas incorrectas. Lea atentamente elfind
manual y la sección sobre la eliminación de archivos para obtener más información.La forma más segura, en su caso, sería:
fuente
Dependiendo del hardware en el que se encuentre el sistema de archivos, puede ser más rápido eliminarlo en paralelo:
A diferencia de
xargs
GNU, Parallel trata correctamente con el espacio "y" en los nombres de archivo. Solo si tiene nombres de archivo que contienen nueva línea necesitará -print0 / -0.Instalación de 10 segundos:
Mire el video de introducción para una introducción rápida: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
fuente