![将目录中的所有文件与整个目录树进行符号链接](https://linux22.com/image/34360/%E5%B0%86%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%9A%84%E6%89%80%E6%9C%89%E6%96%87%E4%BB%B6%E4%B8%8E%E6%95%B4%E4%B8%AA%E7%9B%AE%E5%BD%95%E6%A0%91%E8%BF%9B%E8%A1%8C%E7%AC%A6%E5%8F%B7%E9%93%BE%E6%8E%A5.png)
现在我用这个
ln -s /dir/* /dir2/
这将符号链接所有内容,但我必须进入dir
并创建一个新目录,因为文件夹也被符号链接(这是预期的)。
所以这就是我想要实现的目标:对所有文件进行符号链接,但是当有一个文件夹时,创建一个具有相同名称的目录,并对该文件夹内和该文件夹内的文件进行符号链接,等等。
很像cp
带有-al
标志的 GNU,我通过运行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 {} +