¿Cuál es la mejor manera de crear un directorio que no existe al copiar archivos en AIX? Algo como esto:
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
El directorio ~user2/ existe, pero no el directorio ~user2/bin.
Respuesta1
Una posibilidad sería utilizar una tubería de alquitrán:
(cd ~user1/ && tar -c -p -f - bin/log) | (cd ~user2/ && tar -x -p -f -)
Esto utiliza un subshell para cambiar al directorio principal de la ubicación de origen, luego le indica tar
que escriba un archivo del directorio "log" en la salida estándar. El segundo subshell cambia al directorio principal del destino y luego le indica tar
que extraiga el archivo que llega a través de la entrada estándar de la tubería. Los tar
comandos se encadenan &&
para ejecutarse solo si el cd
comando correspondiente tiene éxito.
Puedes probar esto diciéndole al segundo tar
que simplemente imprima el contenido entrante; simplemente cambia el -x
a -t
. Usar -p
con -t
no importa y no duele:
(cd ~user1/ && tar -c -p -f - bin/log) | (cd ~user2/ && tar -t -p -f -)