Symlink
創建包含某些子目錄的符號連結
假設我有以下目錄:
/source/dir1/sub1 /source/dir1/sub2 /source/dir1/sub3 /source/dir1/sub4 /source/dir2/sub1 /source/dir2/sub2 /source/dir2/sub3 /source/dir2/sub4
…(假設我還有 100 個目錄/目錄
$$ n $$) 我想創建一個指向源目錄的軟連結(讓我們稱之為新目錄’target’),其中包含源目錄中的所有目錄,但只有 sub1 和 sub3 子目錄。
執行此操作的正確語法是什麼?例如,
cd target ln -s /source/**/sub1 . ln -s /source/**/sub3 .
更新以顯示預期的輸出:
/target/dir1/sub1 /target/dir1/sub3 /target/dir2/sub1 /target/dir2/sub3 ...
假設您正在使用
bash
,您可以使用此循環:cd target for dir in /source/*/sub{1,3}; do parentdir=${dir%/*} # remove last directory, e.g. `/sub1` parentdir=${parentdir##*/} # leave the directory name, e.g. `dir1` mkdir -p "$parentdir" ln -s "$dir" -t "$parentdir" done
如果源目錄的路徑應該是相對路徑,則添加
-r
選項。ln