Sous Linux, j'ai une option --parents disponible pour la commande cp donc je peux faire
cp --parents test/withintest/go.rb test2
http://www.gnu.org/software/coreutils/manual/html_node/cp-invocation.html
Sur Mac, je n'ai pas cette option disponible. Existe-t-il un moyen de le faire sur Mac? Pourquoi cette option n'est-elle pas disponible?
PS. Le but de --parents est le suivant:
‘--Parents’ Formez le nom de chaque fichier de destination en ajoutant au répertoire cible une barre oblique et le nom spécifié du fichier source.
Le dernier argument donné à cp doit être le nom d'un répertoire existant.
Par exemple, la commande:
cp --parents a/b/c existing_dir
copie le fichier a/b/c dans rép_existant/a/b/c, créant tout répertoire intermédiaire manquant.
Vous pouvez utiliser la commande ditto
sur Mac OS X:
La forme de base
ditto <src-path> <dst-path>
fait ce que vous voulez. Il y a aussi beaucoup plus d'options - consultez la page de manuel .
Cela m'a beaucoup dérangé aussi. Une solution de contournement pourrait être d'utiliser rsync.
rsync -R test/withintest/go.rb test2
a le même effet que cp --parents
et OS X est livré en standard avec rsync.
Vous pouvez installer la version GNU de cp
en utilisant MacPorts .
Une fois MacPorts installé, vous pouvez installer les packages coreutils:
Sudo port install coreutils
Ensuite, vous pourrez utiliser la version GNU version cp
et d'autres utilitaires de base (ls
, date
, cat
, etc.) en préfixant la commande avec un g
:
gcp --parents test/withintest/go.rb test2
Si vous voulez que ces versions GNU soient utilisées par défaut, vous pouvez ajouter le bin GNU mettre à jour votre chemin d'accès. Ajoutez ce qui suit à votre ~/.bash_profile
:
export PATH="/opt/local/libexec/gnubin:$PATH"
Je ne remplacerais pas mac cp par GNU cp. Je n'utiliserais pas non plus idem car il n'est pas multiplateforme. Utilisez plutôt des outils multiplateformes, tels que rsync:
rsync <srcDir/srcFile> <dst>
Résultat: dst/srcDir/srcFile
La façon Homebrew:
Installez coreutils
brew install coreutils
Utilisez la commande GNU
g- préfixée
gcp --parents test/withintest/go.rb test2