シンボリックリンクの削除と新しいシンボリックリンクの追加を自動化するにはどうすればいいですか

シンボリックリンクの削除と新しいシンボリックリンクの追加を自動化するにはどうすればいいですか

基本的に、ターミナルに入力して次の操作を実行できる簡単なコマンド セットを作成したいと思います。

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

私は、ソフトウェアが中央の場所に保管され、ソフトウェアが特定のパスに依存して実行されるため、Subversion リポジトリ ブランチ (または他のもの) から作業することで発生する問題を回避するためにシンボリック リンクを使用する会社で働いています。私のジレンマは、さまざまなブランチとトランクを定期的に (1 日に数回) 切り替える必要があることです。そのため、少なくとも、ターミナルで実行して一意のコマンド例を入力できる何らかのスクリプトを作成することが望まれます。

./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。ただし、これは別の言語を指定して、そのバイナリを指すこともできます。

関連情報