首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >下载时(使用scp?)通过符号链接的文件可以保存在原始文件名下吗?

下载时(使用scp?)通过符号链接的文件可以保存在原始文件名下吗?
EN

Unix & Linux用户
提问于 2018-02-06 17:55:46
回答 1查看 2.2K关注 0票数 0

在服务器上,目录结构已经像这样组织起来了。(为了争论起见,我不能改变它。我只能想办法让它对我更有用。)

代码语言:javascript
运行
复制
/work/product/versions/app-0.98
/work/product/versions/app-1.0
/work/product/versions/app-1.1
/work/product/versions/app-1.2

每个目录中都有几个文件,例如:

代码语言:javascript
运行
复制
/work/product/versions/app-0.98/app-0.98.1234
/work/product/versions/app-0.98/app-0.98.1235
/work/product/versions/app-0.98/app-0.98.1236
/work/product/versions/app-0.98/app-0.98.1237

当我得到我喜欢的版本时,我想将它与release链接起来,比如:

代码语言:javascript
运行
复制
ln -s /work/product/versions/app-0.98/app-0.98.1237 /work/product/versions/app-0.98/release

这样,我就可以通过请求release文件来下载已验证的版本。我是这样下载的:

代码语言:javascript
运行
复制
scp me@host01:/work/product/versions/app-0.98/release .

在我的本地文件系统上,留给我一个名为"release“的文件。

代码语言:javascript
运行
复制
me@host01:/home/me# ls -al
total 528948
drwxr-xr-x 2 me me      4096 Feb  6 12:24 .
drwxr-xr-x 8 me me      4096 Feb  2 13:03 ..
-rwxr-xr-x 1 me me 541627065 Feb  6 12:25 release

我希望该文件的命名与原始文件app-0.98.1237相同。我是否可以在服务器或scp调用中更改一些内容,以使用原始文件名保存文件?

我在各种OSes上,主要是Linux和CentOS发行版。

EN

回答 1

Unix & Linux用户

发布于 2018-02-06 18:22:13

我最接近的是一个使用rsync而不是裸scp的两步进程(rsync可以使用scp作为后端):

首先,复制链接本身:

代码语言:javascript
运行
复制
rsync -a username@host:/path/to/release .

然后,复制目标可能是什么:

代码语言:javascript
运行
复制
rsync -za username@host:"$(basename "$(readlink release)")" .

然后,您将得到以下结果:

代码语言:javascript
运行
复制
$ ls -l
total 0
drwxrwxr-x  3 username  groupname  96 Feb  6 11:10 1.02
lrwxrwxrwx  1 username  groupname   4 Feb  6 11:09 release -> 1.02
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/422352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档