サーバーでは、すでにディレクトリ構造がこのように構成されています。 (議論の余地があるので変更できません。私にもっと合うようにする方法だけを見つけることができます。)
/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
私は主にLinux-DebianやCentOSディストリビューションなど、さまざまなオペレーティングシステムを使用しています。
ベストアンサー1
私が考えることができる最も近いのは、rsync
裸の代わりに使用する2段階のプロセスです(rsyncをバックエンドscp
として使用できます)。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.02