GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo copiar un archivo y crear los directorios de destino al mismo tiempo?

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 obtengo
No 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/

Linux
  1. Cómo copiar archivos y cambiar la propiedad, los permisos al mismo tiempo

  2. Salida a Stdout y al mismo tiempo Grep en un archivo?

  3. Cómo crear y consultar un sistema de archivos BTRFS

  4. Cómo copiar un archivo a varios directorios usando el comando gnu cp

  5. Hacer ping y tcpdump al mismo tiempo

Cómo crear directorios desde un archivo de texto en Linux

Copie archivos y cree directorios de destino al mismo tiempo

Cómo ver y crear archivos y directorios ocultos en Linux

Cómo crear y usar un archivo de intercambio en Linux

Cómo copiar archivos y directorios en la terminal de Linux

¿En qué se parecen el tiempo de CPU y el uso de CPU?