Bash
將一個目錄中的所有子目錄符號連結到另一個目錄
我正在嘗試將文件夾中的每個目錄符號連結到另一個文件夾。例如,在下面的結構中,我需要符號連結到文件夾 2 的子文件夾。
- /home/chris/folder1 -- subfolder1 -- subfolder2 - /home/john/folder2 -- subfolder1 -- subfolder2
到目前為止,這是我嘗試過的,但是我的 bash 技能生疏了,這不起作用。
find /home/chris/folder1 -type d -maxdepth 1 -mindepth 1 -exec ln -s {} /home/john/folder2/{} \;
假設這種佈局:
% tree -L 2 . ├── top-1 └── top-2 ├── sub-1 ├── sub-2 └── sub-3
而這個期望的輸出:
% tree -L 2 . ├── top-1 │ ├── sub-1 -> /tmp/sf-582772/top-2/sub-1 │ ├── sub-2 -> /tmp/sf-582772/top-2/sub-2 │ └── sub-3 -> /tmp/sf-582772/top-2/sub-3 └── top-2 ├── sub-1 ├── sub-2 └── sub-3
而這個版本
find
:% find --version find (GNU findutils) 4.4.2
採用:
find /tmp/sf-582772/top-2/ -maxdepth 1 -mindepth 1 -type d -exec ln -s '{}' /tmp/sf-582772/top-1/ \;
將此處給出的完整路徑替換為您需要的目錄。這是一個帶有相對路徑的版本:
% pwd /tmp/sf-582772 % find top-2 -maxdepth 1 -mindepth 1 -type d -exec ln -s ../'{}' top-1/ \;
給出:
% tree -L 2 . ├── top-1 │ ├── sub-1 -> ../top-2/sub-1 │ ├── sub-2 -> ../top-2/sub-2 │ └── sub-3 -> ../top-2/sub-3 └── top-2 ├── sub-1 ├── sub-2 └── sub-3