Preciso encontrar todos os arquivos começando com o nome NAME
em uma árvore de diretórios e remover todos esses arquivos usando um comando shell.
36
para excluir todos os arquivos cujo nome tem nome --- você pode usar
find -name . 'name*' -exec rm {} \;
grep
possui um-exec
switch?Exclua todos os arquivos no diretório atual e seus subdiretórios onde o nome do arquivo começa com "foo":
NB: use com cuidado - faça o backup primeiro - também faça um teste a seco primeiro, por exemplo
apenas informará os nomes dos arquivos que seriam excluídos.
fonte
find . -type f -name foo\* -delete
fez o truqueEu tentei dessa maneira, está funcionando para mim, tente abaixo do comando.
aqui "Exemplo" é um texto comum a todos os arquivos.
fonte
Você pode usar
find
:fonte
Com a
globstar
opção (ativar comshopt -s globstar
):**/
Expande para./
,*/
,*/*/
,*/*/*/
etc. Se você tem um diretório de nome começando comNAME
, o comando se queixam de querm
não é possível remover diretórios, mas isso é tudo.Observe que isso pode ter limitações de comprimento de linha de comando se o glob corresponder a muitos arquivos.
Como alternativa, com o mínimo de invocações
rm
possível, mas não sujeito a nenhuma limitação de comprimento de linha de comando:(Observe o em
+
vez de\;
fechar a-exec
instrução.)fonte
find . -name 'foo'* -type f -delete
parece ser a resposta mais simples.Você pode executar isso sem o
-delete
sinalizador antes para ver quais arquivos serão excluídos.fonte
Procure o número "Inode" do arquivo / pasta e exclua usando o número do inode. Abaixo está um exemplo:
fonte