miércoles, 4 de julio de 2012

Eliminar sin pasar por la papelera en Mac

Cuando nos pasamos de Windows a Mac uno de los primeros golpes sufridos es cuando estamos acostumbrados a eliminar archivos definitivamente sin enviarlos a la papelera. En Mac nos encontramos como si nos faltara esa funcionalidad ya que solo vemos la opción de eliminarlos y que vayan a la papelera. En Mac para liberar ese espacio y eliminar definitivamente los ficheros la opción visible que nos dan es el vaciar la papelera.

Si se quiere eliminar o suprimir archivos o carpetas, de forma independiente, sin que se queden en la papelera, como el conocido «Shift+Suprimir» en Windows, tendremos que hacerlo con mandatos desde terminal o programarlo mediante automator.

Abrimos automator, que lo tendremos entre nuestras aplicaciones.
Logo Automator

Elegimos la plantilla para flujo de trabajo de Servicio.
Seleccionada plantilla de trabajo: Servicio
Tenemos tres columnas, en la de la derecha, en el menú desplegable que dice: «El servicio recibe la selección de» archivos o carpetas «en» Finder.

En la columna central buscamos y damos doble clic, o arrastramos a la zona centrar de la columna derecha: Obtener los ítems del Finder seleccionados; y Ejecutar el script Shell.

En la sección de «Ejecutar el script shell» se escoge del menú desplegable donde dice «pasar datos de entrada» como argumentos.

Modificamos el código dejándolo de la siguiente forma:


for f in "$@"
do
rm -R -f -d "$f"
done


Finalmente se guarda: Archivo—guardar. y le damos un nombre, por ejemplo: ShiftSupr
Ventana de trabajo de Automator

Luego abrimos Preferencias del sistema.

En la sección Hardware, clic en Teclado.

Seleccionado la opción de «Funciones rápidas de teclado» en la cabecera. Tendremos dos cajas, en la de la izquierda seleccionamos «Servicios» y en la derecha nos dirigimos a la sección de «Archivos y carpetas» donde tendremos el nombre del archivo que acabamos de guardar ShiftSupr. Damos un clic en la parte derecha para poder asignar el atajo de teclado y una vez que se activa la edición presionamos las teclas, como por ejemplo: shift+cmd+S. Intentar, por seguridad, que sea una combinación que no se presione fácilmente por error.

De este modo al seleccionar archivos o carpetas y presionar la combinación de teclas se eliminarán sin ir a la papelera, liberando de espacio al disco automáticamente.

Para más información sobre el mandato rm. Podéis abrir el terminal y escribir: man rm y os mostrará la descripción con las opciones y su significado.

El script eliminará archivos y carpetas sin pedir confirmación, si están bloqueados no los eliminará porque no eres un administrador. Si eliminas algo que no querías tendrás que buscar programas de recuperación de datos.

Los archivos .workflow creados con Automator se guardan en: «~/Library/Services»

Realizado y probado en:
—Mac OS X 10.6.8 Snow Leopard
—Mac OS X 10.9.1 Mavericks
—Mac OS X 10.10.1 Yosemite
—Mac OS X 10.11.3 El Capitan

20 comentarios:

  1. Tengo el mismo OS X por alguna razón no me funciona y he seguido todos los pasos. ¿algún consejo?
    Saludos. Me parece una solución muy interesante gracias por tu esfuerzo

    ResponderEliminar
    Respuestas
    1. Me corrijo, funciona. Me faltaba poner la opción de "pasar datos".
      La cosa es un poco liosa pero finalmente se saca.

      ¿Por cierto en el caso de que quisiese borrar el servicio que deberia hacer?

      Gracias, esto es genial

      Eliminar
    2. Hola:

      La ubicación del archivo estará en: «~/Library/Services», puedes eliminarlo. Por si no sabes llegar a la ruta, en el Finder ve al menú «Ir» y luego a «Ir a carpeta...» en donde escribes lo de: «~/Library/Services».

      Saludos
      JP

      Eliminar
  2. Woowww!! Increible. Totalmente recomendable, mil gracias por este gran aporte. Es lo más util que he encontrado como solución al vaciado de papelera. Me traía muchos quebraderos de cabeza. Gracias.

    ResponderEliminar
  3. Juan Pablo... Esto es la ostia!!!!!!
    Excelente solución,,, es lo mejor que he encontrado.
    Enhorabuena desde España....

    ResponderEliminar
  4. Hola,
    He seguido todos los pasos, pero cuando voy a seleccionarlo en "Archivos y carpetas" donde el teclado, no aparece el nombre del archivo que acabo de crear. Y tampoco veo las opciones "+" y "-" debajo del recuadro en la ventana. No se si eso es indicativo de algún problema con los permisos. Pero lo que quiero eliminar es precisamente la carpeta Keychains que ya va por millon y medio de archivos y me esta ahogando el ordenador.
    ¿Se te ocurre que puedo hacer?
    Gracias en cualquier caso, parece una buena solución.
    Un saludo

    ResponderEliminar
  5. Hola buenas... yo lo acabo de hacer en OS X Mavericks y no me funciona, lo he hecho tres o cuatro veces, ¿Puedes ser algún problema de compatibilidad con el código?

    Muchas gracias

    ResponderEliminar
    Respuestas
    1. Hola:

      Acabo de probar en Mavericks y funciona, a veces tarda unos segundos.
      Tener cuidado de que la combinación de teclas no coincida por ejemplo: atl+cmd+s muestra/oculta la barra lateral. Yo lo tengo con: shift+cmd+s

      JP

      Eliminar
  6. Gracias, excelente!!!! desde México.

    ResponderEliminar
  7. Funciona perfecto.
    Gracias
    Quiero adicionar que pida confirmación, ya sabe el rm no tiene marcha a tras. adicione la opción -i pero como no sale a consola no funciona, como puedo hacer que confirma con un cuadro de dialogo?

    Gracias de nuevo

    ResponderEliminar
  8. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  9. Hola Juan Pablo, que máquina eres , muchas gracias por tu ayuda.
    Unas consultillas que te quería hacer:
    1. Cuando paso archivos de un disco a otro, algunos archivos salen con el bloqueo del candadito ¿hay alguna opción para con el automator ponerlo para que los desbloquee todos con alguna combinación de teclas?
    2. ¿Hay alguna opción para con el automator cambiar de un idioma a otro con alguna combinación de teclas? es que estoy usando el final cut 7 y está en inglés claro está el teclado no es el mismo, paso a mirar correos hay que poner teclado en español etc... Muchas gracias de antemano.

    ResponderEliminar
    Respuestas
    1. Hola:
      1. El mandato para bloquear o desbloquear sería como sigue:
      chflags -R uchg fichero
      chflags -R nouchg fichero
      Donde «fichero» es el directorio o archivo. Es necesario ser el propietario o administrador. Se tendría que crear un script para ejecutar el mandato y vincularlo a una combinación de teclas (como lo de eliminar sin pasar por la papelera con el «rm»). O añadirlo al script que se realiza en esta publicación.
      2. Desconozco el mandato, sería buscarlo y crear un script. Siguiendo la misma lógica.
      Saludos.

      Eliminar
  10. Así funciona todo en Mac, hasta el evento más simple se vuelve toda una odisea o está escondido, yo aun no entiendo como dicen que es mejor que windows. Aparte del problema de los virus no he visto ventajas, por el contrario fallas de usabilidad y complicaciones hasta para lo más lógico.

    ResponderEliminar
    Respuestas
    1. 😄 Choca mucho más cuando estamos acostumbrados a cómo funciona Windows, tardé en adaptarme. Siguen lógicas diferentes, diría que Apple, como parte de esa lógica, tiende a ser más proteccionista y prefiere ocultar cierta funcionalidad en pro de disminuir que el usuario común cometa errores, como pueda ser borrar cosas definitivamente sin querer. Es solo una idea.

      Eliminar
    2. No choca por estar acostumbrado a windows, choca con las reglas de usabilidad, reglas intuitivas, reglas de lógica que no pertenecen a windows si no a la lógica de los dispositivos y programas en general. Ya integraron esto al nuevo OSX, por algo será. Puedo hacer una lista de cosas que no pertenecen a windows de los que carece, son chocantes y no permiten un fácil manejo.

      Eliminar
  11. Una pregunta, al final dices que si se borra algo por error con este script hay que buscar programas de recuperación de datos, es decir que queda un rastro de los archivos. Pero si se destruyen directa y permanentemente deberían ser irrecuperables, es decir destrucción única e inmediata como por ejemplo el shitf+suprimir en el windows. Gracias, un saludo.

    ResponderEliminar
    Respuestas
    1. Hola =)

      Respuesta rápida, esto hace lo del Shift+suprimir de Windows, y sí dejan rastro (pero no para el usuario común).

      Respuesta más larga y dicha de una forma simple, te puedo hablar de tres tipos de borrado que se realiza indistintamente del sistema operativo, llámese Windows, Mac o Linux.
      El primero es el que un documento que supuestamente lo borras pasa de un directorio que se llama, por ejemplo, "Documentos" a otro que se llama "Papelera", esto es más de tipo visual, de cómo se muestran las cosas. Es solo como cambiar un papel de carpeta.
      El segundo consiste en marcar que el espacio que ocupa el fichero está disponible para que sea ocupado por nueva información, es decir, puedes reescribir en ese espacio, pero la información sigue estando realmente hasta que no sea sobre-escrita; imagina que el sistema operativo accede al capítulo de un libro a través de un índice, pero el capítulo lo borras del índice, entonces para el sistema operativo es como si el capítulo no existe, pero las hojas siguen estando en el libro con toda la información, esto es lo que hace el shift+suprimir en Windows o el rm en Linux o Mac. Y lo que hacen programas de recuperación de información es buscar directamente en el disco, no a través de un "índice" como lo hace el sistema operativo. Esto por ejemplo lo haría la policía científica en busca de información eliminada.
      El tercero consiste en realmente eliminar del disco esa información poniendo a cero uno a uno de los bits, siendo ésta una operación más costosa que las anteriores. En este caso no solo eliminas la información del capítulo sino también el índice, como dejar todas las páginas en blanco; llamado como formato a bajo nivel. Suelen ser programas especiales para tal fin, y depende del tipo de disco duro para que realmente lo hagan bien. Esto no lo hace el sistema operativo.

      Espero haberte dado una mejor idea sobre el tema o al menos una pista de qué buscar para saber más sobre el tema.
      Un saludo.
      JP

      Eliminar