Aqui vai você. A sintaxe é surpreendentemente muito semelhante. Eu encurtei a lista do alfabeto com .. mas você poderia listá-lo se quiser e ainda funcionaria. Não tenho certeza se sua caixa * nix vai ficar feliz com esses caminhos de arquivo.
#Make folders with each letter of the alphabet under the "categorized" folder if not already created
for M in {A..Z}; do mkdir "C:\My Videos\Categorized\${M}"; done;
#Does a directory search matching every letter A-Z and creates a output file listing each folder beginning with that letter
for N in {A..Z}; do ls "G:\My Videos\Movies\${N}"* >> "C:\My Videos\List\${N}.lst"; done;
#Uses the previously created files to create symlinks of each line in the listed files into the alphabatized folders each A-Z folders
for O in {A..Z}; do for P in $(cat "C:\My Videos\List\${O}.lst"); do ln -s "G:\My Videos\Categorized\${O}\${P}" "G:\My Videos\Movies\${P}"; done; done;
#This alternate version for the last line correctly deals with whitespace in your filenames
for O in {A..Z}; do
while read P; do
ln -s "G:\My Videos\Categorized\${O}\${P}" "G:\My Videos\Movies\${P}";
done < "C:\My Videos\List\${O}.lst";
done;