AIXは、コピー時にディレクトリを作成します。

AIXは、コピー時にディレクトリを作成します。

AIXでファイルをコピーするときに存在しないディレクトリーを生成する最良の方法は何ですか?このような:

ssh server1 'cp -R ~user1/bin/log ~user2/bin/log'
cp: /u/user2/bin/log: No such file or directory
ssh server1 'cp -r ~user1/bin/log ~user2/bin/log'
cp: /u/user2/bin/log: No such file or directory

~user2/ ディレクトリは存在しますが、 ~user2/bin ディレクトリは存在しません。

ベストアンサー1

1つの可能性は、タールパイプを使用することです。

(cd ~user1/ && tar -c -p -f - bin/log) | (cd ~user2/ && tar -x -p -f -)

これはサブシェルを使用してソースの場所の親ディレクトリに変更し、tar「log」ディレクトリのアーカイブに標準出力に書き込むように指示します。 2番目のサブシェルはターゲットの親ディレクトリに変更され、標準入力を介してパイプされたtarアーカイブを抽出するように指示されます。これらのコマンドは、そのコマンドが成功した場合にのみtar接続して実行されます。&&cd

tar渡された内容-xを2番目の項目に指示することでこれをテストできます-t-pwithを使用して-tも問題にならず、害もありません。

(cd ~user1/ && tar -c -p -f - bin/log) | (cd ~user2/ && tar -t -p -f -)

おすすめ記事