将目录中的所有文件与整个目录树进行符号链接

将目录中的所有文件与整个目录树进行符号链接

现在我用这个

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 {} +

相关内容