¿Copiar recursivamente archivos y carpetas, pero conservando todo mientras se adquiere la propiedad?

4

Me gustaría copiar archivos y carpetas de forma recursiva desde una unidad externa a mi SSD interno.

Sin embargo, cuando arrastro y suelto y, posteriormente, cuando uso los archivos copiados, siempre me piden que ingrese las credenciales de administrador. No sé si se trata de un problema chmod o chown , o ambos (dificultades para hacer la diferencia entre ellos).

¿Hay alguna forma (a través de Terminal que supongo) de copiar los archivos:

  • al mismo tiempo que conserva todos los detalles de los archivos y carpetas (es decir, las marcas de fecha / hora originales y los metadatos necesarios / útiles);
  • pero obteniendo propiedad (por lo tanto, no tengo que ingresar las credenciales de administrador cada vez que quiero buscar , modificar o mover un archivo ).

Supongo que es cp o rsync , pero debo admitir que tengo dificultades para clasificar y comprender todos los interruptores disponibles.

    
pregunta pdeli 15.04.2015 - 10:50

1 respuesta

3

Para copiar con éxito los archivos en primer lugar, necesita al menos tener acceso de lectura a los archivos en la ubicación original.

Para asegurarse de que pueda leerlos, puede cambiar sus permisos con sudo chmod -R o+rx /drag/your/original/folder/from/Finder/here o, como se sugiere en los comentarios de su pregunta, ignorar la propiedad de la unidad por el momento, lo que deja los archivos originales sin cambios.

Para copiar realmente los archivos, use el siguiente comando:

cp -R /drag/your/original/folder/from/Finder/here /drag/your/target/folder/from/Finder/here/

Para obtener más información durante el proceso de copia, use el siguiente comando:

cp -Rv /drag/your/original/folder/from/Finder/here /drag/your/target/folder/from/Finder/here/

Tenga en cuenta que la barra al final de la carpeta de destino o la carpeta de destino en sí será sobrescrita por el contenido.

Comprensión de los permisos al mover / copiar archivos en UNIX / BSD (el sistema subyacente de Mac OS X se basa en BSD):

  1. Al mover un archivo de A a B en la misma partición / volumen, la propiedad de los archivos no cambiará
  2. Al mover un archivo de A a B entre diferentes particiones / volúmenes, la propiedad de los archivos cambiará al usuario que los mueve (al aplicar sudo al comando de copia, la propiedad de los archivos de destino se establecerá en root )
  3. Al copiar un archivo de A a B independientemente de la ubicación, se aplicará la propiedad de los archivos de destino al usuario que los copia (la aplicación de sudo al comando de copia tendrá la propiedad de los archivos de destino establecida en root )

Con el número 1, solo los descriptores de archivo cambiarán internamente, pero ningún archivo se moverá físicamente. Con 2 y 3, los archivos se copian físicamente en la nueva ubicación, el paso 2 realiza un segundo paso y los elimina de la ubicación original después de cada copia.

ACTUALIZACIÓN (para abordar el comentario):

Si copió los archivos usando sudo , puede modificar los permisos de los archivos de destino usando chown y chmod .

Los comandos son:

sudo chown -R <user>[:group] /drag/your/target/folder/from/Finder/here

<user> es el nombre de cuenta de su usuario (no el nombre completo)
:group es un grupo, que de forma predeterminada para cualquier usuario es staff y para cualquier administrador es admin . Dado que no es obligatorio, puede omitir dejarlo como está (de ahí los corchetes)

sudo chmod -R 770 /drag/your/target/folder/from/Finder/here

Esto le dará a usted y al grupo principal r / w y derechos de ejecución / recorrido sobre los archivos.

    
respondido por el Phoenix 15.04.2015 - 12:11

Lea otras preguntas en las etiquetas