现在我用这个
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 {} +