我希望能够创建目录树的副本并对其上的文件进行软链接。
例如,来自
/home/user/origin/a/sub/file.txt
我想得到
/home/user/destination/a/sub/file.txt
将此链接指向原始文件.txt。
我用
进行了测试find /home/user/origin/ -type d -printf "mkdir -vp '/home/user/destination%p'\n" -o -type f -printf "ln -vs '%p' '/home/user/destination%p'\n" | sh
但它有两个问题:
/home/user/destination/home/user/origin
。这不是一个大问题,因为我之后可以采取行动
五十年来我们都会被Chicks.txt
,它停止工作
答案 0 :(得分:0)
假设我理解您尝试做的事情,使用-exec
find /home/user/origin/ \
-type d -exec sh -c 'mkdir -v "/home/user/destination/${0#/home/user/origin/}"' {} \; \
-o \
-type f -exec sh -c 'ln -vs "$0" "/home/user/destination/${0#/home/user/origin/}"' {} \;
注意-or
的优先级低于默认的-and
,这一点非常重要。