如果目标目录不存在,如何创建符号链接?

时间:2014-10-15 09:47:22

标签: bash unix terminal

是否有一个标志可以添加到ln命令以强制创建目标目录结构(如mkdir -p)。

考虑一下:

ln -s /Applications/'Sublime Text.app'/Contents/SharedSupport/bin/subl /usr/local/bin/

将符号链接添加到Sublime Text命令行工具。但如果/ usr / local / bin /不存在则失败。

我已经尝试了-f' force'旗帜,但这没有帮助。

你是否需要测试/ usr / local / bin / exists并在运行ln命令之前没有测试它或者是否有更好的方法来创建它?

2 个答案:

答案 0 :(得分:9)

试试这个,

mkdir -p  /create_your_path/ && xargs ln -s /link_file_path/file /create_your_path/

答案 1 :(得分:1)

不,ln没有标准选项来创建缺少的目标目录。如果您发现需要多次使用,可以在install之前使用mkdir -pln,也许在辅助脚本中使用。

#!/bin/bash -e
mkdir -p "${!#}"
exec ln -s "$@"

这显然不是很强大,但如果您认为自己确实觉得有用,可以随意修饰它。