繁体   English   中英

链接目录中的文件,使用类似于cp的简单命令

[英]link files within directory, with simple command similar to cp

我的问题的出处:

  • 运行cp source/files.all destination/source所有文件现在也将存在于destination

题:

  • 如果我不想将数据从source复制到destination ,而只是将它们链接( 使用绝对路径 )怎么办。 通常,我会运行类似:

    for f in $(ls source/); do ln -s $(pwd)/${f} $(pwd)/destination; done

    有没有我可以使用的简单命令/工具(例如ln -a source/files.all destination/ ),它可以创建到目录中所有文件的软链接,同时自动添加绝对路径作为前缀。 ln -r接近我所需要的,但是绝对路径而不是相对路径?

我会用find "$PWD/source" -exec ln -s {} destination \\; 用作find的第一个参数的绝对路径将导致{}被每个命令的源文件的绝对路径替换。

GNU ln支持-t选项来指定目标目录,从而允许您使用更有效的find调用:

find "$PWD/source" -exec ln -s -t destination {} +

-exec ... +格式要求{}为命令中的最后一个参数; -t使您可以向上移动目标参数以适应该要求。

因此,我最终找到了一种简单的方法来执行此操作:

只需运行ln -s $(pwd -P)/source/* destination/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM