0 votos

OS X - script para borrar archivos?

Utilizo Latex para escribir mis documentos. Latex crea MUCHOS archivos auxiliares para compilar un documento. A menudo quiero limpiar mi directorio de trabajo.

Cuando trabajaba en Windows, solía mantener un archivo .bat en el directorio de trabajo que tenía este aspecto:

del *.aux
del *.pdf
del *.log
del *.bak
del *.gz
del *.bbl
del *.blg

en el que podría hacer clic para deshacerme de todos los archivos auxiliares.

Ahora, quiero hacer lo mismo en mi Mac. He creado un archivo .sh como este:

#!/bin/bash

cd `pwd`

echo "Cleaning files..."

rm *.aux
rm *.bak
rm *.bbl
rm *.blg
rm *.gz
rm *.log
rm *.pdf

echo "Done!"

que sé que puedo ejecutar (es decir, invocar desde la línea de comandos), pero no puedo hacer clic en - lo que es más conveniente porque no siempre voy a utilizar Terminal.

¿Cómo puedo convertir este script en uno "clicable"?

Agradezco cualquier aportación.

1voto

Nate Puntos 220

Cree un archivo de texto como este:

#!/bin/bash

cd "$(dirname "${BASH_SOURCE[0]}")" || {
    echo "Error changing directory." >&2
    exit 1
}

echo "Cleaning files..."

rm *.aux
rm *.bak
rm *.bbl
rm *.blg
rm *.gz
rm *.log
rm *.pdf

echo "Done!"

Dale una extensión ".command" y añádele permiso de ejecución. Esto hará que se abra automáticamente y se ejecute en Terminal cuando se haga doble clic en él.

Ten en cuenta que hay dos diferencias importantes (y una menor) entre esto y el script de @thiagoveloso:

  • Utiliza comillas dobles alrededor de la ruta que es cd lo que evitará problemas si algún nombre de directorio contiene espacios (lo que es totalmente normal en OS X).
  • Comprueba si hay errores mientras cd y, si hay algún problema, sale (en lugar de borrar los archivos en una ubicación inesperada). Siempre comprueba si hay errores en cualquier comando script que afecte a lo que hará el resto del script; cd es un buen ejemplo de ello.
  • (Menor) Es cd s directamente al directorio de script (en lugar de cd de la ubicación, capturando esa ubicación en una variable, y luego cd allí de nuevo en función de la variable).

0voto

janv8000 Puntos 1507

Basándose en esta referencia ( https://stackoverflow.com/questions/59895/can-a-bash-scriptdice-qué-directorio-tiene-almacenado ), terminé resolviendo mi problema con el siguiente código:

#!/bin/bash

DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )

echo "Cleaning files..."

cd $DIR
rm *.aux
rm *.bak
rm *.bbl
rm *.blg
rm *.gz
rm *.log
rm *.pdf

echo "Done!"

#read -p "Press [Enter] to continue..."

Funciona muy bien para limpiar todos los archivos desagradables que deja Texmaker.

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