Stow

GNU Stow:如何僅存放選定的文件/文件夾?

  • June 10, 2017

讓我們假設一個名為scripts.

├── scripts
│   └── .scripts
│       ├── script1
│       ├── script2
│       └── script3
│   └── .config
│       ├── script4
│       ├── script5
│       └── script6

使用時stow scripts,其中的兩個文件夾都scripts將符號連結到~/.scripts~/.config

我可以使用 stow 僅進行符號連結.scripts而不必.config從文件夾中刪除而基本上忽略它嗎?

stow具有忽略列表,可讓您將名為的文件放在.stow-local-ignore原始碼樹的頂部。在那裡,您可以讓\.scriptsstow 忽略該目錄而不將其連結到目標樹。

讓我們介紹一些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 腳本來自動化您的工作並為您提供最大的靈活性。

引用自:https://unix.stackexchange.com/questions/121910