如果可能的话创建硬链接,否则使用符号链接

如果可能的话创建硬链接,否则使用符号链接

我正在尝试编写一个 shell 脚本来创建从我的dotfiles存储库到我的主文件夹的文件链接。

如果可能的话,我想使用硬链接,因为当将其移动到与HOME.

但如果我将其克隆dotfiles到另一个文件系统,我必须使用符号链接。


那么,如果可能的话,如何为文件创建硬链接,否则在 shell 脚本中使用符号链接?

答案1

ln source target 2>/dev/null || ln -s source target 2>/dev/null || exit 1

或者,稍微更“互动”(更健谈),

if ! ln source target 2>/dev/null; then
    echo 'failed to create hard link, trying symbolic link instead' >&2
    if ! ln -s source target 2>/dev/null; then
        echo 'that failed too, bailing out' >&2
        exit 1
    fi
fi

删除重定向以/dev/null查看显示的错误消息ln(如果有)。

相关内容