Eu tenho o código atual:
for fname in *.*; do
prefix=${fname%.*}
[ ! -f "$fname" ] || [ -f "$prefix.zip" ] && continue
zip "$prefix" "$prefix".*
done
Isso faz principalmente o que eu quero, mas tenho que excluir os arquivos originais. Existe uma modificação que pode ser feita para remover os arquivos originais após a compactação? Se possível, como posso executar isso em um diretório ou em seus subdiretórios?
A estrutura atual do arquivo é a seguinte:
-rootDir
|- Dir1
|- file1.jpg
|- file1.png
|- file1.mp3
|- Dir2
|- file2.jpg
|- file2.png
|- file2.mp3
Estou buscando a estrutura abaixo:
-rootDir
|- Dir1
|- file1.zip
|- Dir2
|- file2.zip
Conforme mencionado, o código acima funciona bem quando executado em um único diretório.
Agora tenho 300 subdiretórios e seria de grande ajuda se eu pudesse obter uma versão modificada do código acima para executar no nível do diretório raiz, bem como organizar os arquivos restantes.