![전체 디렉토리 트리와 디렉토리의 모든 파일을 심볼릭 링크](https://linux55.com/image/34360/%EC%A0%84%EC%B2%B4%20%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%20%ED%8A%B8%EB%A6%AC%EC%99%80%20%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%EC%9D%98%20%EB%AA%A8%EB%93%A0%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%8B%AC%EB%B3%BC%EB%A6%AD%20%EB%A7%81%ED%81%AC.png)
이제 나는 이것을 사용한다
ln -s /dir/* /dir2/
dir
이렇게 하면 모든 것이 심볼릭 링크되지만 폴더도 심볼릭 링크되어 있으므로(예상되는 대로) 들어가서 새 디렉터리를 만들어야 합니다 .
그래서 이것이 제가 달성하고 싶은 것입니다. 모든 파일을 심볼릭 링크하고, 폴더가 있으면 동일한 이름의 디렉터리를 만들고 해당 폴더 내외의 파일을 심볼릭 링크하는 것입니다.
플래그 cp
가 있는 GNU 와 마찬가지로 .-al
brew install coreutils
gcp -al /dir1/ dir2/
이것은 심볼릭 링크 대신 하드 링크라는 점을 제외하면 내가 원하는 것을 수행합니다.
답변1
파일 처리와 디렉터리 처리를 분리해야 한다고 생각합니다. 먼저 목차를 만들어 보세요. GNU 세계에서는:
cd /dir2
find /dir -mindepth 1 -maxdepth 1 -type d -exec mkdir {} \;
그런 다음 심볼릭 링크:
find /dir -mindepth 1 -maxdepth 1 -type f -exec ln -s -t /dir2 {} +