¿Cómo puedo automatizar la eliminación de un enlace simbólico y agregar uno nuevo?

¿Cómo puedo automatizar la eliminación de un enlace simbólico y agregar uno nuevo?

Básicamente quiero crear un conjunto rápido de comandos para poder escribir en la terminal y hacer esto:

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

Trabajo para una empresa cuyo software está alojado en una ubicación central y utiliza enlaces simbólicos para solucionar los problemas creados al trabajar en una rama de repositorio de Subversion (o cualquier otra cosa), ya que el software depende de rutas específicas para ejecutarse. Mi dilema es que tiendo a tener que alternar entre varias ramas y el tronco de forma regular (varias veces al día). Entonces, lo que me gustaría hacer es al menos crear algún tipo de script que pueda ejecutar en la terminal e ingresar un ejemplo de comando único:

./subchange trunk

o

./subchange branch1

No me importa tener que codificar las cosas anteriores por carpeta a la que necesito cambiar, o crear un identificador único para cada una para hacer mi vida un poco más fácil, pero no estoy seguro de cómo crear realmente una secuencia de comandos para que Puedo usarlo como un comando personalizado o qué tipo de script necesitaría usar para que funcione en Linux. Entonces, cualquier consejo/ayuda sería bueno para mí en este momento.

Respuesta1

Si un script es ejecutable y su directorio principal está en su archivo $PATH, puede usarlo como un comando. Por ejemplo, puedes crear un script bash a partir de los comandos que mencionaste:

#!/bin/bash

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

Luego puedes guardarlo como un archivo subchangey hacerlo ejecutable con chmod +x subchange. Tengo un directorio de scripts en mi sistema (por ejemplo /tech/scripts) que agrego a mi archivo $PATH. Muchas veces la variable de $PATHentorno se establece en un archivo ~/.profile, o similar. Puede agregar su directorio haciendo:~/.bashrc/etc/bashrc

export PATH=/tech/scripts:$PATH

Si agregó eso a un archivo de inicio, deberá reiniciar su shell o obtenerlo (por ejemplo source ~/.bashrc). Ahora puede usarlo subchangeen la línea de comando y ejecutará esos comandos. Para agregar un argumento al comando puede usar el $1operador. En bash, esto representa el primer argumento, por lo que si lo hago subchange trunk, $1será trunk. Luego puedes agregar esto a tu script según sea necesario:

#!/bin/bash

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

La #!parte superior del archivo se llamael asunto(ella se mueve... ella se mueve...). Para un script en un sistema Unix, le dice al sistema a través de qué binario ejecutar los siguientes comandos. En este caso, lo especificamos /bin/bashporque queremos ejecutar este archivo como comandos bash y el binario bash está en formato /bin. Sin embargo, esto podría especificar otro idioma y señalar su binario.

información relacionada