Quiero cp aaa/deep/sea/blob.psd
a bbb/deep/sea/blob.psd
¿Cómo hago la copia si el deep
y sea
directorios no existen bajo bbb
para que la copia cree los directorios que se necesitan y copie el archivo?
En este momento obtengoNo such file or directory
como profundidad y mar no existen.
Revisé las páginas de ayuda del hombre y otras preguntas, pero nada me llama la atención.
Lo más cercano que tengo es usar rcp
para el directorio:
rcp -r aaa/deep/sea/ bbb/deep/sea/
aunque esto copia todo el directorio y el contenido y solo quiero un archivo. Sin embargo, tratar de hacer eso le dio a cp: cannot create regular file bbb/deep/sea/blob.psd' such file or directory
Respuesta aceptada:
Intente usar la siguiente función para tal situación:
copy_wdir() { mkdir -p -- "$(dirname -- "$2")" && cp -- "$1" "$2" ; }
y usarlo como
copy_wdir aaa/deep/sea/blob.psd bbb/deep/sea/blob.psd
Por cierto, GNU cp
tiene un --parents
opción. Está muy cerca de lo que quieres, pero no exactamente.
También creará aaa
directorio que parece que no necesita. Sin embargo, primero puede hacer un cd a aaa
y copiar como:
cd aaa && cp --parents deep/sea/blob.psd ../bbb/