Como remover todos os arquivos que começam com uma certa string no Linux

30

Eu preciso encontrar todos os arquivos que começam com o nome NAME em uma árvore de diretórios e remover todos esses arquivos usando um comando shell.

    
por Achini Pumika 02.10.2012 / 14:18

7 respostas

-1

para excluir todos os arquivos cujo nome tem nome --- você pode usar

find -name . 'name*' -exec rm {} \;
    
por 02.10.2012 / 14:48
58

Exclua todos os arquivos no diretório atual e seus subdiretórios em que o nome do arquivo começa com "foo":

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

NB: use com cautela - faça o backup primeiro - também faça um teste primeiro, por exemplo

$ find . -type f -name foo\*

apenas informará os nomes dos arquivos que seriam excluídos.

    
por 02.10.2012 / 14:19
13

Eu tentei desta forma está trabalhando para mim tente abaixo do comando.

rm -rf Example*

aqui "Exemplo" é um texto comum a todos os arquivos.

    
por 28.07.2016 / 12:51
10

Você pode usar find :

find . -name "name*" -exec rm {} \;
    
por 02.10.2012 / 14:22
2

Com a globstar opção (ative com shopt -s globstar ):

rm -f **/NAME*

**/ expande para ./ , */ , */*/ , */*/*/ etc. Se você tiver um nome diretório começando com NAME , o comando reclamará que rm não pode remover diretórios, mas isso é tudo.

Observe que isso pode ocorrer em limitações de tamanho de linha de comando se o glob corresponder a muitos arquivos.

    
por 24.02.2017 / 04:17
1

find . -name 'foo'* -type f -delete parece a resposta mais simples.

Você pode executar isso sem o sinalizador -delete antes para ver quais arquivos serão excluídos.

    
por 27.08.2018 / 18:28
-1

Procure o número "Inode" do arquivo / pasta e exclua usando o número do inode. Abaixo está um exemplo:

ls -il
3407873 drwxr-xr-x. 2 root   root      4096 Mar 30 07:49 –p

find . -inum 3407873 -exec rm -rf {} \;
    
por 30.03.2015 / 08:04

Tags