¿Cómo puedo localizar archivos ejecutables de Unix en OS X?

1

Accidentalmente eliminé un montón de archivos ejecutables de Unix en mi Mac cuando estaba usando alguna herramienta de limpieza y ahora no hay forma de que pueda restaurar esos archivos usando esa aplicación.

Pero los tengo todos en mi carpeta de basura y me pregunto si hay una manera de localizar dónde estaban originalmente los archivos para poder volver a colocarlos manualmente

Algunos de ellos son realmente obvios, como Dictionary está en Contenidos »MacOs, pero para algunos otros archivos como AdjustmentsPlugin o DUSupport, no tengo idea de dónde estaban.

¿Hay alguna aplicación que pueda usar para localizar archivos Unix? Como tengo otra Mac, puedo buscar los archivos allí. Spotlight no busca realmente los ejecutables de Unix.

pew007
fuente
1
¿Puede decirnos qué herramienta de limpieza usó y darnos algunos ejemplos más de su Papelera? ¿No puedes simplemente ir a la Papelera, hacer clic derecho y seleccionar Volver a poner ... ?
slhck
Estaba usando Xslimmer y eliminó un montón de archivos ejecutables. Sin embargo, no creo que Mac tenga una opción para restaurar archivos desde la papelera ... pero mi problema ya está solucionado. Busqué las ubicaciones de los archivos en otra computadora y las volví a colocar manualmente.
pew007
1
¡Oh esta bien! En unas pocas horas, puede responder su propia pregunta (usando el botón a continuación) y decirnos exactamente cómo lo hizo, eso ayudaría a otros con el mismo problema.
slhck

Respuestas:

1

¿Has probado el comando de localizar desde un indicador de comandos de shell? Suponiendo que la base de datos de localización aún no se haya reconstruido, debería mostrar la ubicación anterior de los archivos.

Hennes
fuente
¿Hay un sufijo para esos archivos ejecutables de Unix? cuando uso el comando de localización, solo dice unknown0021e9e64f1a: ~ Home $ find Dictionary ADVERTENCIA: La base de datos de localización (/var/db/locate.database) no existe. Para crear la base de datos, ejecute el siguiente comando: sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist Tenga en cuenta que la base de datos puede tardar un tiempo en generarse; una vez que se ha creado la base de datos, este mensaje ya no aparecerá.
pew007
2
@newbie: los archivos ejecutables de Unix generalmente no tienen una extensión de nombre de archivo. En los sistemas Unix / Linux convencionales, es probable que se encuentren en directorios con el nombre bin(o sbin).
RedGrittyBrick
Eso significa que encontró y ejecutó con éxito el comando de localización. Lamentablemente, la base de datos de la que obtiene su información está vacía. Puede crear suces a DB con el comando que enumeró ( sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist), pero eso solo generaría una base de datos con la ubicación actual de los archivos (por ejemplo, en la papelera de reciclaje). Esperaba usar la ubicación de una base de datos antigua. (La mayoría de los sistemas Unix actualizan una base de datos semanal o incluso nocturna. Supongo que los valores predeterminados en OS / X difieren).
Hennes
Ese enlace a locateestá roto.
Basil Bourque
Esa es la desventaja de los enlaces externos. Solía ​​funcionar. Lo reemplacé con un nuevo enlace (actualmente funcionando).
Hennes
1

Una opción sería usar Spotlight:

mdfind 'kMDItemContentType==public.unix-executable'

Sin embargo, parece excluir archivos dentro de paquetes de aplicaciones. Y no incluye archivos con una extensión similar .sho .rbincluso si fueran ejecutables.

Lri
fuente
1

Los archivos ejecutables tienen el conjunto de bits ejecutable (piense chmod +x)

Esto es fácilmente detectable por las herramientas que vienen con el sistema operativo:

mdls

GetFileInfo #if you have the Developer Tools installed

Atributos extendidos ls -l@e

Ahora solo necesita una forma de recurrir al sistema de archivos, para encontrar archivos ejecutables:

find 

funciona si te gusta bash

Enciende zsh y puedes usar esto:

print -l ${^path}/*(-*N)

Para imprimir, uno por línea, todo en su $ PATH, que es un archivo ejecutable

Ejecute esto como raíz, por supuesto, para acceder a todos los rincones del sistema.

Spotlight no buscará en ningún lugar que normalmente esté oculto para usted.

Ahora:

Este es el camino difícil, porque en el buscador, hay una opción para "volver a colocar" los archivos en la papelera, lo que significa que hay metadatos sobre el origen de los archivos.

De todos modos, si todos los archivos están en la papelera, solo necesita crear su lista de rutas y hacer que su sistema se ajuste.

En realidad, este es un trabajo para Radmind , que es una herramienta utilizada para poner un sistema en correspondencia con un sistema de referencia ... pero también podría volver a instalar el sistema operativo en su lugar.

chiggsy
fuente