Как автоматизировать удаление символической ссылки и добавление новой?

Как автоматизировать удаление символической ссылки и добавление новой?

По сути, я хочу создать быстрый набор команд, чтобы можно было вводить их в терминал и делать следующее:

cd /path/to/folder/of/symlink
sudo rm -f symlink
sudo ln -s /new/path/of/symlink
cd /new/path/of/symlink

Я работаю в компании, чье программное обеспечение размещено в центральном месте и использует символические ссылки для обхода проблем, созданных работой из ветви репозитория subversion (или чего-то еще), поскольку программное обеспечение полагается на определенные пути для запуска. Моя дилемма заключается в том, что мне, как правило, приходится регулярно переключаться между различными ветвями и стволом (несколько раз в день). Поэтому я хотел бы по крайней мере создать какой-то тип скрипта, который я могу запустить в терминале, и ввести уникальный пример команды:

./subchange trunk

или

./subchange branch1

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

решение1

Если скрипт исполняемый и его родительский каталог находится в вашем $PATH, то вы можете использовать его как команду. Например, вы можете создать bash-скрипт из команд, которые вы упомянули:

#!/bin/bash

cd /path/to/folder/of/symlink
sudo rm -f symlink
sudo ln -s /new/path/of/symlink
cd /new/path/of/symlink

Затем вы можете сохранить это как файл, subchangeи сделать его исполняемым с помощью chmod +x subchange. У меня есть каталог скриптов в моей системе (например /tech/scripts), который я добавляю в свой $PATH. Часто $PATHпеременная окружения задается в ~/.profile, ~/.bashrc, /etc/bashrcили подобном файле. Вы можете добавить свой каталог, выполнив:

export PATH=/tech/scripts:$PATH

Если вы добавили это в файл запуска, вам нужно будет перезапустить оболочку или источник (например source ~/.bashrc, ). Теперь вы можете использовать subchangeв командной строке, и она выполнит эти команды. Чтобы добавить аргумент к команде, вы можете использовать оператор $1. В bash это означает первый аргумент, поэтому если я это сделаю, subchange trunkто $1будет trunk. Затем вы можете добавить это в свой скрипт по мере необходимости:

#!/bin/bash

cd /path/to/folder/of/symlink
sudo rm -f symlink
sudo ln -s /new/path/$1/symlink
cd /new/path/$1/symlink

В верхней #!части файла находится файл, который называетсяпритон(она двигается... она двигается...). Для скрипта в системе unix он сообщает системе, через какой двоичный файл запускать следующие команды. В этом случае мы указываем , /bin/bashпотому что хотим выполнить этот файл как команды bash, а двоичный файл bash находится в /bin. Это может указывать на другой язык и указывать на его двоичный файл.

Связанный контент