Как я могу использовать один и тот же подстановочный знак в разных частях команды?

Скажем, у меня есть следующая команда, которая создает символический ссылка из одного файла в другой, давая ссылке то же имя без расширения.

sudo ln -s ~/foobar/abc.sh ~/fubar/abc

Как я могу сделать то же самое, но для ~ / foobar / *. Sh ?

0
задан 15 August 2021 в 00:29

2 ответа

Переименование файлов и, в вашем случае, создание символических ссылок, mmv будет достаточно.

mmv -s '~/foobar/*.sh' '~/fubar/#1'
  • -s Чтобы результирующая ссылка возвращалась к источнику, либо имя источника должно начинаться с '/', либо цель должна находиться либо в текущем, либо в исходном каталоге. Если ни одно из этих условий не выполняется, ссылка отклоняется. Однако источник и цель могут находиться на разных устройствах, а источником может быть каталог.
1
ответ дан 20 August 2021 в 10:26
for fn in ~/foobar/*.sh ; do
sudo ln -s $fn ~/fubar/`basename $fn .sh`
done

Предполагается, что ни в одном из файлов * .sh нет пробелов в имени файла. Если это так, вам нужно указать оба аргумента команды ln -s :

for fn in ~/foobar/*.sh ; do
sudo ln -s "$fn" "~/fubar/`basename $fn .sh`"
done
1
ответ дан 20 August 2021 в 10:26

Другие вопросы по тегам:

Похожие вопросы: