Estou usando o macOS Sequoia (15.3.1) e estou com dificuldades para excluir arquivos em uma pasta e suas subpastas usando rm -R
curingas +, como *1.XXX
.
Minha biblioteca de música no meu Mac tem vários arquivos duplicados ( *.mp3
, *.m4p
), e estou tentando excluí-los, evitando ir a cada pasta manualmente. Como os arquivos duplicados têm nomes que terminam com 1
ou 2
, *1.mp3
funciona bem.
Notei que um simples ls -r *.*
ou *.mp3
também não fornece nenhum resultado (nenhuma correspondência encontrada, embora eu saiba que há arquivos lá).
Mas se eu for até uma pasta específica e digitar, rm *1.mp3
funciona.
*
é um curinga que se expande no shell, não é interpretado porrm
. Writiing*1.mp3
significa "todos os arquivos que terminam com 1.mp3 no diretório". Se o diretório pai do qual você está executandorm
não tiver nenhum desses arquivos, ele se expandirá para nada.Você pode obter o comportamento que procura com um
find
comando:Notas:
"
) ao redor do padrão do arquivo - isso é feito para evitar que o shell interprete o*
, e tenha quefind
lidar com isso.-i
é uma medida de segurança para evitar a exclusão de arquivos que você não pretendia. Se você executar este comando e estiver satisfeito que ele encontre os arquivos corretos, você pode remover o-i
para não precisar aprovar manualmente cada exclusão.