Remover o ponto de interrogação “?” dos nomes dos arquivos OSX

1

Minha biblioteca de músicas contém muitos arquivos .flac que precisam do "?" removido do nome do arquivo, pois meu player de música atual (Sonos) não pode, por algum motivo, ver esses arquivos.

Existe um comando ou script que me ajudaria a encontrar & remover pontos de interrogação "?" no meu diretório de músicas?

Configuração de diretório:

~/music/artist/album/01 title with?.flac

Obrigado

    
por spacecat 04.01.2014 / 04:30

1 resposta

3

Abra o Terminal e mude para o diretório, depois use o comando listado para remover todas as ocorrências de ? nos nomes dos arquivos nesse diretório:

cd ~/music/artist/album/

for f in *; do mv -- "$f" "${f//\?/}"; done

Antes de você cometer para executar o comando, você pode testá-lo, o que mostrará o nome do arquivo original seguido por um novo:

for f in *; do echo -- "$f" "${f//\?/}"; done

-- 01 title with?.flac 01 title with.flac

Para fazer isso de forma recursiva, você precisará usar o comando find e definitivamente tentar primeiro em um diretório de teste . Mexendo nas seqüências de substituição de todos os seus nomes de arquivos pode tornar as coisas muito piores do que melhor. Para operações recursivas como essa, sempre recomendo fazer backup de seus dados de antemão.

O primeiro comando é o dry run, o que significa que nada é realmente alterado. O segundo comando é a coisa real, que recursivamente renomeia todos os nomes de arquivos (eliminando pontos de interrogação) no diretório atual e em todos os subdiretórios :

find . -type f -name '*\?*' | while read f; do echo mv "$f" "${f//\?/}"; done

find . -type f -name '*\?*' | while read f; do mv "$f" "${f//\?/}"; done
    
por 04.01.2014 / 08:45

Tags