Como apagar todos os arquivos com uma certa extensão de uma pasta e todas as suas subpastas? [duplicado]

12

Desejo remover todos os arquivos .jpg da minha pasta Música para economizar espaço. A pasta My Music contém subpastas e gostaria de saber se existe um comando para remover todos os arquivos .jpg de todas essas pastas, independentemente do nível. Obrigado pela sua ajuda!

    
por Tigull 16.02.2012 / 19:14

4 respostas

8

A maneira mais fácil (se você estiver usando o Ubuntu Desktop):

Vá para a sua pasta Música no Nautilus, pressione Ctrl + F e procure por .jpg .

& amp; depois apague-o

Você também pode alterar o local e pode tornar sua pesquisa mais específica.

Atualizado

Seja mais específico depois de pesquisar .jpg Clicando no botão verde Select File type Picture & amp; em seguida, remova jpg da pesquisa apenas . dot & amp; então reload como mostrado na foto abaixo

  

O que ele faz pesquisaremos um arquivo de imagem como .jpg .png .gif & amp; todos os outros arquivos que estão em Picture Format

    
por One Zero 16.02.2012 / 19:33
45

Uma solução rápida e limpa para a linha de comando seria

cd <dir>
find . -type f -iname \*.jpg -delete
  • . diz para começar a pesquisar na pasta atual.
  • -type f diz para procurar apenas por arquivos.
  • -iname torna o caso de pesquisa insensível.
  • -delete informa para excluir / remover todos os arquivos encontrados.

Eu recomendo executar o comando sem -delete primeiro para obter uma lista dos arquivos que serão removidos quando -delete for incluído no comando. Dessa forma, um pequeno erro de digitação não excluirá nada que você não pretendia.

Para mais informações sobre como usar find e o que ele pode ver, consulte man find

Observe que find não produzirá nenhuma saída quando -delete for usado.

Em relação ao comentário sobre várias extensões

find . -type f \( -name \*jpg -o -name \*png \) -delete

  • ( .. ) expressão de grupo. Precisa ser escapado do shell, portanto, \( .. \) no exemplo
  • -o lógico ou

Portanto, o exemplo acima corresponderá a qualquer arquivo que tenha jpg ou png no final de seu nome. Mais extensões podem ser adicionadas da mesma maneira. Lembre-se de lembrar -o entre cada instrução -name , se -o não for especificado find será o padrão -a (e), o que não funcionará, pois o arquivo não pode terminar em jpg e png ao mesmo tempo.

    
por Zoke 16.02.2012 / 20:11
3

Isso deve ser feito

sudo rm -rf -d ~/Music/*.JPG

que removerá todos os arquivos .JPG da pasta Música.

    
por Ringtail 16.02.2012 / 19:31
0

O shopt -s globstar do Bash pode ser útil aqui para globalização recursiva:

bash-4.3$ tree
.
├── 10.jpg
└── subfolder
    ├── 5.jpg
    └── another_subfolder
        └── 15.jpg

2 directories, 3 files
bash-4.3$ shopt -s globstar
bash-4.3$ rm ./**/*.jpg
bash-4.3$ tree
.
└── subfolder
    └── another_subfolder
    
por Sergiy Kolodyazhnyy 13.07.2017 / 07:26