Necesito encontrar todos los archivos que comienzan con el nombre NAMEen 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 {} \;
greptiene un-execinterruptor?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\* -deletehice 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
globstaropción (habilitar conshopt -s globstar):**/se expande a./,*/,*/*/,*/*/*/etc Si usted tiene un directorio de nombre que empieza conNAME, el comando se quejan de quermno 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
rmposible, pero no sujeto a ninguna limitación de longitud de línea de comando:(Observe el en
+lugar de\;cerrar la-execdeclaración).fuente
find . -name 'foo'* -type f -deleteParece la respuesta más simple.Puede ejecutar esto sin la
-deletebandera 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