Ваша первая попытка должна сработать. Не так ли? Что он делает вместо этого?
*
заменяет все совпадающие имена файлов, но впоследствии не выполняет разбиение по внутренним пробелам.
«Я знаю, что ln хорошо справляется с регулярными выражениями» - это неправильно. Во-первых, здесь вы видите шаблоны оболочки, а не регулярные выражения. Во-вторых, он ln
справляется не с ними, а с вашей оболочкой (обычно bash
) перед запуском ln
или любой другой командой.