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

dwk*_*kns 10 unix bash terminal

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

考虑:

ln -s /Applications/'Sublime Text.app'/Contents/SharedSupport/bin/subl /usr/local/bin/
Run Code Online (Sandbox Code Playgroud)

这为Sublime Text命令行工具添加了一个符号链接.但是如果/ usr/local/bin /不存在则失败.

我试过-f'强制'标志,但这没有用.

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

Ade*_*taş 9

试试这样,

mkdir -p  /create_your_path/ && xargs ln -s /link_file_path/file /create_your_path/
Run Code Online (Sandbox Code Playgroud)

  • 什么是`xargs`管道?`mkdir`没有产生输出所以`xargs`的管道只是一个非常模糊的说法`mkdir -p target; ln -s source target`; 并且您从`mkdir`中丢失了退出代码,因此如果目标不是目录或您没有创建它的权限,则不会失败. (4认同)
  • 是的,我最终得出了这个结论.如果目录已经存在,则mkdir -p无效,如果不存在则创建它,因此它运行良好. (2认同)