在服务器上,目录结构已经像这样组织起来了。(为了争论起见,我不能改变它。我只能想办法让它对我更有用。)
/work/product/versions/app-0.98
/work/product/versions/app-1.0
/work/product/versions/app-1.1
/work/product/versions/app-1.2每个目录中都有几个文件,例如:
/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链接起来,比如:
ln -s /work/product/versions/app-0.98/app-0.98.1237 /work/product/versions/app-0.98/release这样,我就可以通过请求release文件来下载已验证的版本。我是这样下载的:
scp me@host01:/work/product/versions/app-0.98/release .在我的本地文件系统上,留给我一个名为"release“的文件。
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发行版。
发布于 2018-02-06 18:22:13
我最接近的是一个使用rsync而不是裸scp的两步进程(rsync可以使用scp作为后端):
首先,复制链接本身:
rsync -a username@host:/path/to/release .然后,复制目标可能是什么:
rsync -za username@host:"$(basename "$(readlink release)")" .然后,您将得到以下结果:
$ 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.02https://unix.stackexchange.com/questions/422352
复制相似问题