Je veux cp aaa/deep/sea/blob.psd
àbbb/deep/sea/blob.psd
Comment faire la copie si les répertoires deep
et sea
n'existent pas sous bbb
afin que la copie crée à la fois les répertoires nécessaires et copie le fichier?
En ce moment, je deviens
No such file or directory
aussi profond et la mer n'existe pas.
J'ai regardé à travers les pages d'aide de l'homme et d'autres questions, mais rien ne me saute aux yeux.
Le plus proche que j'utilise utilise rcp
pour le répertoire:
rcp -r aaa/deep/sea/ bbb/deep/sea/
bien que cela copie tout le répertoire et le contenu et je veux juste le seul fichier. Essayer de faire cela a cependant donnécp: cannot create regular file bbb/deep/sea/blob.psd' such file or directory
rsync
réponse ne créera qu'un seul répertoire etpax
ne semble pas être courante.-d
plutôt que-D
sur un Mac.755
(rwxr-xr-x
), ce qui n'est probablement pas souhaité. vous pouvez spécifier autre chose avec le-m
commutateur, mais je n'ai pas pu trouver un moyen de simplement conserver les autorisations de fichier :(Avec les commandes standard (POSIX / Unix), vous avez:
la source
info tar
- quelque part dans la section concernant la portabilité - je pense que vous constaterez que GNUtar
prétend être entièrementpax
compatible. Je l'ai fait de toute façon, même si je n'ai jamais encore mis à l'épreuve ces affirmations.Je ne connais pas de façon de le faire en utilisant
cp
, mais il est certainement possible d'utiliserrsync
:où
dir
est un répertoire qui ne doit pas exister. Il existe de nombreuses autres façons d'obtenir le même résultat à l'aide d'autres commandes.la source
rsync -R
conserver le répertoirersync
besoins nécessite plus d'options, mais la question portait simplement sur la création d'un répertoire cible inexistant, d'où ma brève réponse :)cp
a l'--parents
option.Si vous n'en avez pas
pax
(c'est mandaté par POSIX, en remplacement standard de cpio et tar qui avait trop d'incompatibilités à standardiser), utilisezcpio -p
ou à latar -cf - … | tar -xf -
place.la source