macos - commands - command line osx
cp--opciĆ³n de los padres en mac (4)
Esto me molestó bastante también. Una solución para esto podría ser usar rsync.
rsync -R test/withintest/go.rb test2
tiene el mismo efecto que cp --parents
y OS X viene de serie con rsync.
En Linux, tengo una opción --parents disponible para el comando cp, así que puedo hacer
cp --parents test/withintest/go.rb test2
http://www.gnu.org/software/coreutils/manual/html_node/cp-invocation.html
En Mac, no tengo esta opción disponible. ¿Hay alguna manera de hacer esto en Mac? ¿Por qué esta opción no está disponible?
PD. El propósito de --parents es el siguiente:
''--parents'' Forme el nombre de cada archivo de destino agregando al directorio de destino una barra y el nombre especificado del archivo de origen.
El último argumento dado a cp debe ser el nombre de un directorio existente.
Por ejemplo, el comando:
cp --parents a/b/c existing_dir
copia el archivo a / b / c a dir_existente / a / b / c, creando cualquier directorio intermedio faltante.
No reemplazaría Mac cp con GNU cp. Tampoco lo usaría porque no es multiplataforma. En su lugar, use herramientas multiplataforma, como rsync:
rsync <srcDir/srcFile> <dst>
Resultado: dst / srcDir / srcFile
Puede instalar la versión GNU de cp
usando MacPorts .
Después de instalar MacPorts, puede instalar los paquetes de coreutils:
sudo port install coreutils
Luego podrá usar la versión de GNU cp
y otros servicios básicos ( ls
, date
, cat
, etc.) prefijando el comando con una g
:
gcp --parents test/withintest/go.rb test2
Si desea que estas versiones de GNU se usen de forma predeterminada, puede agregar la actualización de la ruta de GNU bin. Agregue lo siguiente a su ~/.bash_profile
:
export PATH="/opt/local/libexec/gnubin:$PATH"
Puede usar el comando ditto
en Mac OS X:
La forma basica
ditto <src-path> <dst-path>
hace lo que tu quieras También hay muchas más opciones, echa un vistazo a la página de manual .