Certamente em alguma ocasião você verificou que tem um tipo de arquivo inútil em várias pastas, que ocupa pouco espaço, mas você simplesmente não o quer no seu computador. Por exemplo, no macOS, alguns arquivos são criados .DS_Store que salvam informações sobre o ícone de uma pasta, seu tamanho e posição, e no Windows existem desktop.ini que são equivalentes. O que faremos se tivermos um diretório cheio de subdiretórios e quisermos excluir esses ou outros tipos de arquivos? O que temos que fazer é apagar recursivamente Cada um deles.
Isso é algo que podemos fazer com todos os tipos de arquivos. Por exemplo, se temos um disco rígido cheio de música, temos um player que baixou as capas e não queremos que sejam salvas, podemos usar o mesmo comando que detalharemos a seguir para excluí-las. Claro, levando em consideração que iremos deletar recursivamente arquivos de diretório e seus subdiretórios com o terminal e que estes serão perdidos para sempre, não faz mal ser cuidadoso e / ou faça um teste antes de excluir tudo o que queremos excluir.
Exclua recursivamente arquivos de um tipo do terminal
Os comandos para os arquivos .DS_Store do macOS de exemplo seriam os seguintes:
cd ruta/a/directorio find . -name '*.DS_Store' -type f -delete
Dos comandos anteriores, o primeiro nos colocará na pasta onde queremos começar, ou seja, aquela que contém todos os arquivos .DS_Store que queremos deletar. O segundo é o que excluirá todos os arquivos .DS_Store do primeira pasta e suas subpastas ou diretórios. Se o que queremos é excluir as fotos das pastas de música mencionadas anteriormente, temos que colocar o tipo de extensão entre as aspas, como '* .jpg'.
Para ser 100% honesto, isso é algo que farei no dia em que parar de usar o Cantata como reprodutor de música padrão. Cantata cria e oculta arquivos de informação com o mesmo nome das músicas que têm um ponto e uma barra baixa na frente deles (por exemplo, ._Song). Quando eu precisar, o comando que terei que usar será achar. -nome '._ *' -tipo f -excluir.
Este pequeno guia o ajudou a excluir arquivos recursivamente do terminal?
Obrigado, mas há um erro no seu código. Você precisa usar a expressão regular '*', que é '* .DS_STORE'. Eu recomendo que você corrija isso. Bem, para quem tem menos conhecimento de bash, o código que você deu não funcionará. Saudações!