10 votos

MacOS no puede copiar archivos "especiales"... están marcados con "s"

Su régimen de permisos es srwxr-xr-x .

No puedo copiarlos, ya que me aparece el siguiente mensaje de error.

cp: no se puede crear el archivo especial '/Volúmenes/Samsung_T5/Dockers/vms/0/00000002.00001003': Operación no permitida

Lo intenté con sudo pero los archivos siguen sin copiarse, aunque el mensaje es un poco diferente. Esta vez, dice "Argumento no válido".

Y sí, estoy tratando de mover la carpeta Docker a un disco externo ya que está llenando mi disco duro.

18voto

Abramodj Puntos 1771

Este es un (s)ocket tipo de archivo. Como tal, no tiene ningún dato persistente asociado y, por tanto, no tiene sentido copiarlo.

Los zócalos permiten la comunicación entre dos procesos diferentes en la misma o en diferentes máquinas. Esta comunicación se realiza mediante descriptores de archivo estándar de Unix/Linux, utilizando read() y write() llamadas al sistema.

15voto

staffan Puntos 3299

El primer carácter de la salida de ls -l es el tipo de archivo: - para un archivo normal (sea cual sea el tipo de su contenido), d para un directorio, etc. s indica un zócalo que es un lugar que los programas pueden utilizar para comunicarse (un servidor escucha las conexiones en el socket, y los clientes pueden comunicarse con el servidor abriendo una conexión en el socket).

Los sockets no tienen contenido, pero su existencia es necesaria para el software que lo utiliza, y sus permisos son importantes. Si el software utiliza un socket, y no lo crea automáticamente cuando se inicia, es necesario copiarlo. (Crear el socket cuando el servidor se inicia es a veces posible porque todo lo relacionado con el socket es conocido, y a veces no es posible porque la ubicación y los metadatos pueden variar).

Parece que hay un error con el sistema de MacOS cp que no sabe cómo copiar sockets. (Me sale el error "Operation not supported on socket" en Big Sur, así que parece que es una limitación conocida, pero sigue siendo un bug porque cp debería ser capaz de copiar sockets). Tenga en cuenta que un cp copia el contenido de los archivos, pero con la opción -R o -a , cp debe copiar los archivos especiales, como las tomas de corriente.

Puede utilizar el rsync en su lugar:

rsync -aE /path/to/source/ /path/to/destination/

Si tiene instalado GNU coreutils, su cp (que puede instalarse con un nombre diferente como gcp ) debería ser capaz de hacer el trabajo también.

Tenga en cuenta que la unidad de destino debe utilizar un sistema de archivos que admita archivos especiales. No se puede ejecutar Docker en un sistema de archivos FAT/FAT32/exFAT.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X