如何自動刪除符號鏈接並添加新符號鏈接

如何自動刪除符號鏈接並添加新符號鏈接

基本上我想建立一組快速命令,以便我可以在終端機中輸入並讓它執行以下操作:

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

如果您將其新增至啟動檔案中,則需要重新啟動 shell 或取得它(例如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.這可以指定另一種語言並指向其二進位。

相關內容