我正在尝试符号链接我正在处理的项目中的一组特定文件。
我希望符号链接的每个文件名中都有一个已知字符串。
这是我到目前为止所拥有的:
ln -s find ~/path/to/src/ -name "*stringtomatch*" find ~/path/to/dest
Run Code Online (Sandbox Code Playgroud)
我在目标中设置了目录结构以匹配源,但它只是目录,因此如果为空目标编写命令更容易,我不介意删除它们。
更新:
我现在已经接受了一个有效的答案,我想分享一些上下文,以便类似的用例可以更容易地找到解决方案。
我在 Netbeans 中执行大部分编码。当我为一个项目构建包时,我倾向于命名所有关联的文件,以便它们具有共同的文件名的一部分。这使我可以在项目中四处移动时轻松找到自己的包文件。然而,在我当前的项目中,由于涉及大量文件和目录,这非常耗时。
我现在拥有的是为我自己的每个包定义的单独项目,它仅显示该包的文件,同时维护主项目层次结构。
通过在主项目中构建使用符号链接到我的包文件的单独包项目,我有效地创建了我认为是完美的解决方案,在 Netbeans IDE 中似乎没有当前形式的可用解决方案。
每个子项目什么都不做,只允许我处理仅与自身相关的文件子集,这确实使我在键盘上的时间更有效率。
我相信 Eclipse 内置了这个功能,尽管我没有 Eclipse。
因此,尽管是一种妥协,但我相信 Netbeans 的这种解决方法与我今天可以实现的解决方案一样干净。如果不是比我预期的要好,它也能正常工作,这是一个巨大的奖励。
我曾期望在编辑子项目后运行主文件的手动同步。事实并非如此,主站仍然保持自动同步。
如果你已经在目标位置创建,然后用的GNU实现必要的目录find
和xargs
,这不是太困难:
find ~/path/to/src -name "*stringtomatch*" -printf "%P\0" |
xargs -r0 --replace ln -s ~/path/to/src/'{}' ~/path/to/dest/'{}'
Run Code Online (Sandbox Code Playgroud)
的-printf "%P\0"
输出移除了源目录参数,并以空字节端的路径。
xargs
然后读取find
输出。
-0
指示要使用的参数是空分隔的。
--replace
告诉 xargs{}
用参数替换(也意味着每个参数运行一个命令)。
最后给出了将参数替换为的命令。