Qual a melhor forma de criar um diretório que não existe ao copiar arquivos no AIX? Algo assim:
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
O diretório ~user2/ existe, mas não o diretório ~user2/bin.
Responder1
Uma possibilidade seria usar um pipeline tar:
(cd ~user1/ && tar -c -p -f - bin/log) | (cd ~user2/ && tar -x -p -f -)
Isso usa um subshell para mudar para o diretório pai do local de origem e, em seguida, informa tar
para gravar um arquivo do diretório "log" no stdout. O segundo subshell muda para o diretório pai do destino e, em seguida, informa tar
para extrair o arquivo que vem do stdin do pipe. Os tar
comandos são encadeados para &&
serem executados somente se o cd
comando correspondente for bem-sucedido.
Você pode testar isso dizendo ao segundo tar
para simplesmente imprimir o conteúdo recebido; basta alterar -x
para -t
. Usar -p
with -t
não importa e não faz mal:
(cd ~user1/ && tar -c -p -f - bin/log) | (cd ~user2/ && tar -t -p -f -)