Com o terminal, há muitas maneiras de fazer isso. Uma opção é usar find (1):
find /your/dir -type f \! -name 'x300' \! -name '300x' -exec echo rm -f {} \;
Substitua /your/dir
pelo local onde seus arquivos estão. Quando tiver certeza absoluta de que os comandos encontrar somente os arquivos que você deseja excluir com rm , remova "echo" da parte exec e reexecute para remover arquivos, em vez de imprimir quais arquivos serão removidos.
Algumas explicações:
find / your / dir encontra todos os arquivos e pastas em / your / diir ans abaixo.
tipo-f filtros para somente arquivos
-name x300
filter apenas para itens que contenham x300 no nome do arquivo.
O ! inverte isso (apenas os arquivos que NÃO contêm).
-exec executa um comando. Você pode exec echo, ou você poderia -print
deles.
Você pode usar rm como comando para excluir ou -delete
para usar a construção de localizações.
{}
é o nome do arquivo atual. Se você usar \;
, {} será substituído por um nome de cada vez. (por isso, se você tiver 10000 arquivos para remover, iniciará uma nova rm 10000 vezes).
Você também pode substituir isso com +
para obter muitos arquivos de uma só vez (embora -elete seja ainda mais eficiente).