На самом деле, bash
- это язык сценариев, более чем способный выполнять такие вещи даже из командной строки: -)
Предполагая, что команда, которую вы опубликовали, работает (и, похоже, основываясь на моем беглом тестировании), вы можете просто сделать:
i=0
for f in $(CMD) ; do
ln -s $f $HOME/recent$i
((i++))
done
Или, как однострочный:
i=0;for f in $(CMD);do ln -s $f $HOME/recent$i;((i++));done
Это создаст файлы recent0
- recent9
в вашем домашнем каталоге, которые являются символическими ссылками на самые последние файлы.
Очевидно, вы должны поместить вашу фактическую команду туда, где я поместил маркерный текст CMD
выше. Я использовал маркер только для того, чтобы он хорошо форматировался здесь, на SO.
Как отмечает Ян Худек в комментарии, это будет работать только для файлов без пробелов, на мой взгляд, злые вещи: -)
Но, поскольку люди, кажется, используют их, вы можете использовать более безопасный:
i=0
CMD | while read f; do
ln -s $f $HOME/recent$i
((i++))
done
И, опять же, однострочная версия:
i=0;CMD|while read f;do ln -s $f $HOME/recent$i;((i++));done