Supongamos que quiero eliminar todos los archivos de una carpeta que tengan más de 1 MB.
$ find . -size +1M | xargs -0 rm
Esto no eliminará archivos que tengan espacio en sus nombres. Entonces quiero que cite todos los argumentos que envía rm. Si lo findda, Some report.docxdebería pasar "Some report.docx"a rm.
¿Cómo puedo hacer eso?

xargs. Además, como sugiere el wiki, no lo usexargssin pasar el-print0afind.xargs -d$'\n'para limitar el delimitador a solo nuevas líneas (y no espacios; esto no procesaría comillas, etc. especialmente - He comprobado en un sistema GNU) - la respuesta dada en stackoverflow.com/a/33528111/94687Respuestas:
Uso simple:
Si insiste en usar
xargsyrmconfind, simplemente agregue-print0su comando:Otra manera:
De
man find:fuente
"Some report.docx"armmenos que el nombre del archivo contenga las comillas. Lo que quieres es pasarSome report.docxsin ser molestadorm. La respuesta de KasiyA (ahora) muestra la forma general de hacerlofind. [KasiyA: perdón por el ping equivocado antes.]$0y$1etcxargs -0lugar dexargs -r0.La opción
-0dexargssignifica que la salida de la tubería se interpreta como elementos terminados en nulo. En tal caso, también debe crear una entrada para la tubería confind ... -print0.fuente
Tenía un requisito similar y terminé usando el
-Iinterruptor para tener un marcador de posición y pude citarlo.fuente