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
。-p
withを使用して-t
も問題にならず、害もありません。
(cd ~user1/ && tar -c -p -f - bin/log) | (cd ~user2/ && tar -t -p -f -)