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.
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.
Respuestas:
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":
$ find . -type f -name foo\* -exec rm {} \;
NB: use con precaución, haga una copia de seguridad primero, también haga una carrera en seco primero, por ejemplo
$ find . -type f -name foo\*
solo le dirá los nombres de los archivos que se eliminarán.
find . -type f -name foo\* -delete
hice el truco
Lo he intentado de esta manera, funciona para mí, intente debajo del comando.
rm -rf Example*
aquí "Ejemplo" es texto que es común para todos los archivos.
Puedes usar find
:
find . -name "name*" -exec rm {} \;
Con la globstar
opción (habilitar con shopt -s globstar
):
rm -f **/NAME*
**/
se expande a ./
, */
, */*/
, */*/*/
etc Si usted tiene un directorio de nombre que empieza con NAME
, el comando se quejan de que rm
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:
find . -type f -name 'NAME*' -exec rm -f {} +
(Observe el en +
lugar de \;
cerrar la -exec
declaración).
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.
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:
ls -il
3407873 drwxr-xr-x. 2 root root 4096 Mar 30 07:49 –p
find . -inum 3407873 -exec rm -rf {} \;