La lista de archivos se proporciona como entrada al trcomando que cambia el separador de archivos del salto de línea al byte nulo y el xargscomando lee archivos separados por bytes nulos en la entrada y lanza el comando rm con los archivos adjuntos como argumentos.
También sugiero usar en rm --lugar de solo rm, para que los nombres de archivo que pueden comenzar con el guión no se traten como rmparámetros.
artyom
No funcionó amigo ........ tr: operando extra monu.txt' Try tr --help 'para más información. rm: operando faltante Pruebe `rm --help 'para obtener más información. ........ Esto es todo lo que puedo ver
monumentos
1
¿Quizás te perdiste el <antes del nombre del archivo?
Jonas Berlin
También mejoré un poco el comando xargs, agregué, de acuerdo con la sugerencia de @artyom y agregué -r para asegurarme de que no se ejecute rm si no hay archivos para eliminar.
Jonas Berlin
5
La respuesta anterior está bien porque hace todo lo posible para manejar nombres de archivos con espacios y "caracteres extraños". Pero la forma más simple, si los nombres de archivo son sanos, es solo (¡advertencia, bashism!):
Respuestas:
Si tiene un archivo por línea, una forma de hacerlo es:
La lista de archivos se proporciona como entrada al
tr
comando que cambia el separador de archivos del salto de línea al byte nulo y elxargs
comando lee archivos separados por bytes nulos en la entrada y lanza el comando rm con los archivos adjuntos como argumentos.fuente
rm --
lugar de solorm
, para que los nombres de archivo que pueden comenzar con el guión no se traten comorm
parámetros.monu.txt' Try
tr --help 'para más información. rm: operando faltante Pruebe `rm --help 'para obtener más información. ........ Esto es todo lo que puedo verLa respuesta anterior está bien porque hace todo lo posible para manejar nombres de archivos con espacios y "caracteres extraños". Pero la forma más simple, si los nombres de archivo son sanos, es solo (¡advertencia, bashism!):
Para shell normal:
fuente