如何将不同的文件复制到正在更改的别名

如何将不同的文件复制到正在更改的别名

我希望能够更换

cp x.x ~/some/long/directory/that/is/deeply/nested/

cp x.x s1

其中 s1 是指向的别名/some/long/directory/that/is/deeply/nested/

然而目的地经常改变。
今天是

/some/long/directory/that/is/deeply/nested/

第二天是

/some/long/directory/less/deep

第二天是

/some/other/directory/less/deep

鉴于它一直在变化,是否存在别名(或更可能的函数?正如我所想的那样),有没有办法可以在目标为“解释”别名的情况下执行 cp

就像是

cp x.x `s`

“源”文件也有许多不同的值。我不想要一个仅指向一个(或几个列表)位置或用于 1 个(或几个列表)源文件的别名。我希望它是别名当时指向的任何内容,并且在调用它时将提供文件名。

源和目的地可以是数千个值中的任何一个。

答案1

外壳变量

您可以通过添加要放入s1变量的目录来完成此操作,如下所示:

s1=/some/long/directory/that/is/deeply/nested/

然后您可以像这样访问这些:

$ cp x.x $s1

符号链接

您可以在主目录中维护一个仅指向今天的长目录的链接。

$ ln /some/long/directory/that/is/deeply/nested/ $HOME/shortlink
$ cp x.x $HOME/shortlink

目录书签工具

看看这个问答题:终端中的快速目录导航。工具如自动跳转或者xd - 超快速目录更改器,也可用于为常用目录添加“书签”,以便您可以轻松更改它们,而无需键入长路径。

参考

答案2

怎么样:

#!/bin/bash
mdhf="/home/MichaelDurrant/linq
params="$@"
[[ $params = *-d* ]] && nufile=${params##*\-f}
[[ $nufile ]] && [ -L "$mdhf" ] && rm $mdhf 
[[ $nufile ]] && ln -s $nufile $mdhf 
for i in "$@"; do
[[ $i = '-d' ]] && break 
cp -v $i $mdhf
done

用法是mdcp filename -d directory.如果您要更改当前的软链接目录,则只需使用 -d 参数。

相关内容