Eliminar todas las descargas de iCloud drive en MacOS

El servicio de almacenamiento en la nube incluido en los dispositivos de Apple, más conocido como iCloud drive, ofrece una completa integración en todo el entorno Apple. Incluso permite el acceso desde la Web.

Cuando se activa iCloud Drive en macOS, el sistema puede conservar una copia local de los archivos para un acceso más rápido, o dejar solo un enlace a ese archivo y mantener el contenido real en la nube para ahorrar espacio.
En ocasiones podemos querer forzar que macOS elimine las copias descargadas en el disco —sin borrar nada de iCloud— para recuperar espacio en nuestro Mac.

Podemos abrir la carpeta de iCloud en el Finder e ir uno a uno por cada archivo, abrir el menú contextual y activar la opción eliminar descarga. Pero esta tarea se puede complicar si tenemos multitud de carpetas y sub carpetas y miles de archivos almacenados en iCloud.

La Terminal al rescate

Desde la Terminal de MacOS podemos realizar operaciones complejas que no tienen forma de ser realizadas desde la interfaz gráfica de MacOS.

Si abrimos la Terminal de MacOS y ejecutamos el siguiente comando se realizará esa limpieza de todos los archivos de iCloud de nuestro equipo:

brctl evict ~/Library/Mobile\ Documents/com~apple~CloudDocs

Comando brctl

brctl (abreviatura de bird control) es una utilidad incluida en macOS que permite interactuar con los servicios de iCloud a bajo nivel.

El subcomando evict solicita al servicio que “evacúe” (evict) las copias locales de los archivos indicados: el archivo local se sustituye por un marcador que representa el ítem en iCloud, y el contenido real queda solo en la nube.

Desde el punto de vista del usuario, el archivo sigue apareciendo en Finder, pero macOS no mantiene su contenido en disco; si se abre de nuevo, el sistema lo descargará cuando sea necesario.

Aún más fácil con AppleScript

Puede que abrir la Terminal no sea del agrado de todos los usuarios por su aparente complejidad. Para evitar esto podemos crear un AppleScript con el siguiente contenido:

on run
    set icloudPath to POSIX path of (path to library folder from user domain) & "Mobile Documents/com~apple~CloudDocs"
    set command to "brctl evict " & quoted form of icloudPath
    do shell script command
end run

Ejecutando este AppleScript evitaremos usar la Terminal. Además, lo podemos convertir en una aplicación para crear automatizaciones.