Necesito encontrar todos los archivos que comienzan con el nombre NAME
en un árbol de directorios y eliminar todos estos archivos con un comando de shell.
36
para eliminar todos los archivos cuyo nombre tiene nombre --- puede usar
find -name . 'name*' -exec rm {} \;
grep
tiene un-exec
interruptor?Eliminar todos los archivos en el directorio actual y sus subdirectorios donde el nombre del archivo comienza con "foo":
NB: use con precaución, haga una copia de seguridad primero, también haga una carrera en seco primero, por ejemplo
solo le dirá los nombres de los archivos que se eliminarán.
fuente
find . -type f -name foo\* -delete
hice el trucoLo he intentado de esta manera, funciona para mí, intente debajo del comando.
aquí "Ejemplo" es texto que es común para todos los archivos.
fuente
Puedes usar
find
:fuente
Con la
globstar
opción (habilitar conshopt -s globstar
):**/
se expande a./
,*/
,*/*/
,*/*/*/
etc Si usted tiene un directorio de nombre que empieza conNAME
, el comando se quejan de querm
no pueden eliminar directorios, pero eso es todo.Tenga en cuenta que esto podría encontrarse con limitaciones en la longitud de la línea de comandos si el globo coincide con muchos archivos.
Alternativamente, con la menor cantidad de invocaciones
rm
posible, pero no sujeto a ninguna limitación de longitud de línea de comando:(Observe el en
+
lugar de\;
cerrar la-exec
declaración).fuente
find . -name 'foo'* -type f -delete
Parece la respuesta más simple.Puede ejecutar esto sin la
-delete
bandera antes para ver qué archivos se eliminarán.fuente
Busque el número "Inode" del archivo / carpeta y luego elimínelo usando el número de inodo. A continuación se muestra un ejemplo:
fuente