Linux: Je veux une commande (ou probablement une option pour cp) qui crée le répertoire de destination s’il n’existe pas.
Exemple:
cp -? file /path/to/copy/file/to/is/very/deep/there
Linux: Je veux une commande (ou probablement une option pour cp) qui crée le répertoire de destination s’il n’existe pas.
Exemple:
cp -? file /path/to/copy/file/to/is/very/deep/there
Ancienne question mais voici une réponse plus facile: cp le supporte mais vous devez lire la documentation complète (info cp invocation '):
--parents' Form the name of each destination file by appending to the target directory a slash and the specified name of the source file. The last argument given to
cp 'doit être le nom d'un répertoire existant. Par exemple, la commande:cp --parents a/b/c existing_dir copies the file `a/b/c' to `existing_dir/a/b/c', creating any missing intermediate directories.
/tmp $ mkdir foo
/tmp $ mkdir foo/foo
/tmp $ touch foo/foo/foo.txt
/tmp $ mkdir bar
/tmp $ cp --parents foo/foo/foo.txt bar
/tmp $ ls bar/foo/foo
foo.txt
Pas besoin de script.
Voici une façon de le faire:
mkdir -p `dirname /path/to/copy/file/to/is/very/deep/there` \
&& cp -r file /path/to/copy/file/to/is/very/deep/there
dirname
vous donnera le parent du répertoire ou du fichier de destination. mkdir -p dirname ... va alors créer ce répertoire en s'assurant que lorsque vous appelez cp -r, le répertoire de base correct est en place.
L'avantage de ce sur-parent est qu'il fonctionne dans le cas où le dernier élément du chemin de destination est un nom de fichier.
Et cela fonctionnera sur OS X.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.