Stow
GNU Stow:如何僅存放選定的文件/文件夾?
讓我們假設一個名為
scripts
.├── scripts │ └── .scripts │ ├── script1 │ ├── script2 │ └── script3 │ └── .config │ ├── script4 │ ├── script5 │ └── script6
使用時
stow scripts
,其中的兩個文件夾都scripts
將符號連結到~/.scripts
和~/.config
。我可以使用 stow 僅進行符號連結
.scripts
而不必.config
從文件夾中刪除而基本上忽略它嗎?
stow
具有忽略列表,可讓您將名為的文件放在.stow-local-ignore
原始碼樹的頂部。在那裡,您可以讓\.scripts
stow 忽略該目錄而不將其連結到目標樹。
讓我們介紹一些Stow 術語:
預設情況下, Stow將目前目錄作為你的stow directory,你在命令行中作為參數鍵入的名稱作為stow 包,將父目錄作為目標目錄,所以當你鍵入時:
$ stow scripts
如果沒有任何選項,您的stow 目錄是目前目錄,
scripts
是您的包,目前目錄的父目錄將成為安裝包的儲存目標目錄(將在其中創建符號連結)。您可以在命令行中明確告知stow 目錄和要安裝的包,如下面的命令:
$ stow -d /path_to_scripts_folder/scripts -S .scripts
這裡的
scripts
這裡被定義為你的stow 目錄和.scripts
你在Stow terminology中的包。或者,您可以指定目標目錄,即相對於您的文件(文件的符號連結)應該放置的目錄:
$ stow -d /path/scripts -S .scripts -t ~/
要測試任何這些選項,您可以使用
-n
僅模擬更改而不修改文件系統的標誌:$ stow -n -d /path/scripts -S .scripts -t ~/
如果您想查看應該採取的所有操作,您可以添加 -v 指定從 0(無
-v
標誌)到 3(-vvv
)的詳細級別:$ stow -n -d /path/scripts -S .scripts -t ~/ -vvv
隨著這個選項變得越來越複雜,最好編寫一個小 shell 腳本來自動化您的工作並為您提供最大的靈活性。