使用脚本找出`ln -s`的目的地

时间:2013-03-27 17:13:51

标签: shell unix zsh

首先,这是我正在谈论的剧本: https://github.com/Greduan/dotfiles/blob/master/scripts/symlinks.sh

检查第20行。它具有以下内容

dest = "$HOME/.`basename \"${source%.*}\"`"

因为我从另一个脚本中获取了这个,所以我不知道它实际上是做什么的。我猜它的作用是源文件名为vimrc.vim.symlink它是否输出.vimrc.vim,对吗?

如果不正确,请您解释一下它的作用?

你可以帮我弄清楚如何制作它,这样如果文件是vimrc.vim.symlink,我怎么能这样做才能获得.vimrc

请检查脚本,以便了解我在说什么。 :)

1 个答案:

答案 0 :(得分:1)

首先,您的分析是正确的。 ${source%.*}.*中删除source后缀。其余的$HOME/.$(basename \"...\")使用source的基本名称,该名称会删除其中的所有路径,只留下文件名,并放在$(HOME)/.之后。

如果您要删除第一个点之后(包括)的所有内容,可以使用${source%%.*}%%代替%)。 This answer为您提供示例。