Answers:
你的问题很模糊。
cp -l "$SRCDIR"/* "$DESTDIR"
find "$SRCDIR" -mindepth 1 \( -type d -printf 'mkdir "$DESTDIR/%P"\n' \) -o \
\( -printf 'cp -l "%p" "$DESTDIR/%P"\n' \) | DESTDIR="$DESTDIR" bash
第一个直接在各个项目中创建符号链接$SRCDIR
。第二个重新创建目录结构并为非目录创建符号链接。
cp -s
如果复制到同一目录只能做相对的符号链接,2)cp
我的修改中的命令需要一个eval
。
cp -l
制作硬链接,而cp -s
制作符号链接。如果树很大而第二个选项最终变得缓慢,那么它也可以通过以下方式实现:for i in $(cd srcdir; find . -mindepth 1 -type d -printf '"%p" '); do mkdir -p "dstdir/${i}"; cp -l $(find "srcdir/${i}" -maxdepth 1 -not -type d -printf '"%p" ') "dstdir/${i}"
。