Симлинк и скрытие точечных файлов

Как я могу переименовать кучу точечных файлов и добавить ведущую точку в одну и ту же команду? Я вижу, что люди пишут:

ln -s vimrc .vimrc
ln -s gitconfig .gitconfig

Но я хотел бы что-то вроде этого:

ln -s {vimrc,gitconfig} ~/.$1


person Community    schedule 09.11.2014    source источник


Ответы (1)


Использование цикла for:

for f in vimrc gitconfig; do ln -s  $f .$f ; done

Если у вас есть список имен файлов в файле:

for f in `cat filename_list.txt`; do mv $f .$f ; done
person falsetru    schedule 09.11.2014
comment
Спасибо! Не могли бы вы объяснить мне, что не так с моей идеей? В идеале я хотел бы не тратить время на подобную ошибку в следующий раз. - person ; 09.11.2014
comment
@ mm2703, ln -s {vimrc,gitconfig} ~/.$1 будет расширен до ln -s vimrc gitconfig ~/.$1 (указание нескольких целей) работает только в том случае, если ссылка является каталогом. А $1 не определено. Он будет заменен первым аргументом командной строки в сценарии оболочки, но пустой строкой, которой нет в сценарии оболочки. - person falsetru; 09.11.2014