Não, mac faz um arquivo por vez, então você precisa contornar isso.
Supondo que os arquivos que você deseja codificar / decodificar estejam em pastas ou subpastas específicas, e não em caminhos arbitrários, você pode fazer isso com uma combinação de localizar , sed e xargs .
Por exemplo, para codificar todos os arquivos WAV em uma pasta específica e todas as suas subpastas, com os arquivos de saída simplesmente com a extensão APE, usando o rápido -c1000 preset, você digitaria:
find ~/path/to/folder -name *.wav | sed 's/....$//g' \
| xargs -I MACFILE mac "MACFILE.wav" "MACFILE.ape" -c1000
Explicação:
-
findlocaliza todos os arquivos com a extensão wav dentro e abaixo do caminho determinado e os envia.- Você pode usar
'pwd'(com os backticks) como abreviação para a pasta atual. - Adicione o argumento
-maxdepth 0para manter apenas a pasta atual e não entrar em subpastas.
- Você pode usar
- A expressão sed exclui (isto é, substitui por "em branco") os últimos quatro caracteres de cada nome de arquivo retornado por find, que é a extensão
.wavou.ape -
xargs alimenta cada nome de arquivo canalizado para o comando
mac.- O
-I MACFILEinforma xargs para substituir cada ocorrência de MACFILE pela entrada (filename); Desta forma obtemos arquivos com extensões adequadas e não.wav.ape, etc.
- O
Para decodificar somente dentro da pasta atual , e enviar para uma pasta personalizada, por exemplo:
find 'pwd' -name *.ape -maxdepth 0 | sed 's/....$//g' \
| xargs -I MACFILE mac "MACFILE.ape" "/home/ryan/decodes/MACFILE.wav" -d
Nota: encontrar é um daqueles utilitários que são quase ilimitados (veja
man find). Com as opções de-exece-printfcorretas (e talvez mais), o find pode ser suficiente sem precisar do sed e do xargs , e tenho certeza que alguém vai apontar isso :). Mas acho isso mais fácil de explicar e entender.