Verifique la existencia del archivo, luego mueva, cambie el nombre del archivo antiguo y mueva uno nuevo

Esto es lo que estoy tratando de hacer:

Tengo una carpeta que contiene un script y un archivo. El archivo es una copia anterior de un archivo ubicado en esta ruta: /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A.

Estoy intentando crear un AppleScript que active Finder, abra la ruta antes mencionada, verifique si el archivo en cuestión existe, cambie el nombre de ese archivo a .new si existe, luego mueva la versión anterior de la carpeta que contiene el script.

Alternativamente, si AppleScript se ejecuta cuando la versión .new del archivo existe en la ruta antes mencionada, me gustaría que el script cambie el nombre de la versión anterior del archivo (que se copió previamente) a .old y elimine el .new de el archivo original (es decir, esencialmente revertir lo que hizo anteriormente, pero sin eliminar el archivo que se agregó).

Independientemente de lo que haya intentado, hasta ahora no he podido hacer que el script se autentique correctamente para cambiar el nombre del archivo (la carpeta en cuestión, obviamente, requiere la aprobación del administrador antes de que se puedan realizar modificaciones).

Obtener el script para activar Finder y abrir la carpeta es bastante trivial (por ejemplo, tell application "Finder" activate open ("/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A" as POSIX file) end tellfunciona bien), pero lograr que el script se autentique después de eso, verifique la existencia de los archivos y luego actúe en consecuencia ha sido bastante infructuoso. tarea.

Cualquier ayuda será muy apreciada.

Podría ser más fácil escribir la mayor parte de esto en bash, luego suturar y ejecutar el script de shell desde AppleScript

Respuestas (1)

do shell script "
d=/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A
if [[ -e $d/Apple80211 ]]; then
  mv $d/Apple80211 $d/Apple80211.new
  cp ~/path/to/Apple80211 $d/Apple80211
else
  mv $d/Apple80211 $d/Apple80211.old
  mv $d/Apple80211.new $d/Apple80211
fi" with administrator privileges