我的问题来源:
- 当运行
cp source/files.all destination/
时,source
中的所有文件现在也将存在于destination
问题:
如果我不想将数据从
source
复制到destination
,而是简单地链接它们(使用绝对路径).通常,我会运行类似的东西:for f in $(ls source/);执行 ln -s $(pwd)/${f} $(pwd)/目的地;完成
有没有我可以使用的简单命令/工具(例如
ln -a source/files.all destination/
),它会创建到目录中所有文件的软链接(soft link),而 自动添加绝对路径 作为前缀。ln -r
接近我需要的,但是是绝对路径,不是相对路径?
最佳答案
我会使用 find "$PWD/source"-exec ln -s {} destination\;
。用作 find
的第一个参数的绝对路径将导致 {}
被替换为每个命令的源文件的绝对路径。
GNU ln
支持 -t
选项来指定目标目录,允许您使用更高效的 find
调用:
find "$PWD/source" -exec ln -s -t destination {} +
-exec ... +
形式要求 {}
是命令中的最后一个参数; -t
允许您向上移动目标参数以满足该要求。
关于linux - 链接目录中的文件,使用类似于 cp 的简单命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37166506/