假设我有以下命令,它创建从一个文件到另一个文件的符号链接,并为该链接赋予相同的名称但不带扩展名。
sudo ln -s ~/foobar/abc.sh ~/fubar/abc
我怎样才能做同样的事情,但是~/foobar/*.sh
?
答案1
重命名文件,并且在您的情况下创建符号链接mmv
就足够了。
mmv -s '~/foobar/*.sh' '~/fubar/#1'
-s
要使生成的链接指向源,源名称必须以“/”开头,或者目标必须位于当前目录或源目录中。如果这些条件都不满足,则链接会被拒绝。但是,源和目标可以位于不同的设备上,并且源可以是目录。
答案2
for fn in ~/foobar/*.sh ; do
sudo ln -s $fn ~/fubar/`basename $fn .sh`
done
这假设所有*.sh
文件的文件名都没有空格。如果有,则需要用ln -s
引号将两个参数括起来:
for fn in ~/foobar/*.sh ; do
sudo ln -s "$fn" "~/fubar/`basename $fn .sh`"
done