Quiero cp aaa/deep/sea/blob.psd
abbb/deep/sea/blob.psd
¿Cómo hago la copia si los directorios deep
y sea
no existen bbb
para que la copia cree los directorios necesarios y copie el archivo?
Ahora mismo me pongo
No such file or directory
tan profundo y el mar no existe.
Miré a través de las páginas de ayuda del hombre y otras preguntas, pero nada salta a la vista.
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. Intentar hacer eso sin embargo diocp: cannot create regular file bbb/deep/sea/blob.psd' such file or directory
rsync
respuesta solo creará 1 directorio, ypax
no parece ser común.-d
lugar de-D
en una Mac.755
(rwxr-xr-x
), lo que probablemente no se desea. puede especificar algo más con el-m
interruptor, pero no pude encontrar una manera de mantener los permisos del archivo :(Con los comandos estándar (POSIX / Unix), tienes:
fuente
info tar
- en algún lugar de la sección de preocupaciones de portabilidad - creo que encontrarás que GNUtar
afirma ser totalmentepax
compatible. Lo hice de todos modos, aunque todavía no he podido poner a prueba esas afirmaciones.No conozco una forma de hacerlo usando
cp
, pero ciertamente es posible usandorsync
:donde
dir
es un directorio que no tiene que existir. Hay muchas otras formas de lograr lo mismo con otros comandos.fuente
rsync -R
para preservar la jerarquía de directoriosrsync
necesidades necesita más opciones, pero la pregunta era simplemente sobre la creación de un directorio de destino inexistente, de ahí mi breve respuesta :)cp
tiene la--parents
opción.Si no tiene
pax
(es obligatorio por POSIX, como un reemplazo estándar de cpio y tar que tenía demasiadas incompatibilidades para estandarizar), usecpio -p
o en sutar -cf - … | tar -xf -
lugar.fuente