2012-10-02 12:18:00 +0000 2012-10-02 12:18:00 +0000
39
39

Cómo eliminar todos los archivos que comienzan con una determinada cadena en Linux

Necesito encontrar todos los archivos que comienzan con el nombre NAME en un árbol de directorios y eliminar todos estos archivos usando un comando del shell.

Respuestas (7)

68
68
68
2012-10-02 12:19:23 +0000

Elimina todos los archivos del directorio actual y sus subdirectorios cuyo nombre empiece por “foo”:

$ find . -type f -name foo\* -exec rm {} \;

NB: utilícelo con precaución - haga primero una copia de seguridad - también haga un simulacro primero, por ejemplo,

$ find . -type f -name foo\*

sólo le dirá los nombres de los archivos que se eliminarían.

29
29
29
2016-07-28 10:51:24 +0000

He intentado esta manera que está trabajando para mí intente abajo comando.

rm -rf Example*

aquí “Ejemplo” es el texto que es común para todos los archivos.

11
11
11
2012-10-02 12:22:38 +0000

Puede utilizar find:

find . -name "name*" -exec rm {} \;
3
3
3
2017-02-24 03:17:48 +0000

Con la opción globstar (habilitada con shopt -s globstar):

rm -f **/NAME*

**/ se expande a ./, */, */*/, */*/*/ etc. Si tienes un nombre de directorio que empieza por NAME, el comando se quejará de que rm no puede eliminar directorios, pero eso es todo.

Tenga en cuenta que esto puede tener limitaciones en la longitud de la línea de comandos si el glob coincide con muchos archivos.

Alternativamente, con el menor número posible de invocaciones de rm, pero sin estar sujeto a ninguna limitación de longitud de línea de comandos:

find . -type f -name 'NAME*' -exec rm -f {} +

(Observe el + en lugar de \; para cerrar la sentencia -exec).

3
3
3
2012-10-02 12:48:10 +0000

Para eliminar todos los archivos cuyo nombre tiene nombre, se puede utilizar:

find . -name 'name*' -exec rm {} \;
2
2
2
2018-08-27 16:28:09 +0000

find . -name 'foo'* -type f -delete parece la respuesta más sencilla.

Puede ejecutar esto sin la bandera -delete antes para ver qué archivos se borrarán.

-1
-1
-1
2015-03-30 06:04:34 +0000

Busque el número de “Inodo” del archivo/carpeta y luego elimínelo utilizando 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 {} \;