1 votos

Ayuda para entender una búsqueda por línea de comandos de todos los archivos sqlite en un dispositivo os x

Estaba escuchando un Háblame de Pitón podcast que tenía como invitado a Simon Willison. Willison habló de dos proyectos que está desarrollando, Datasette y DogSheep Beta, ambos permiten extraer datos como una base de datos SQLite (Datasette) y luego indexarlos y consultarlos (DogSheep Beta). Todos los datos incluyen datos del Apple Watch, textos, datos de las fotos, incluyendo latitud y longitud, e incluso la puntuación que Apple utiliza para clasificar las fotos.

Los dos enlaces de aquí son realmente interesantes y los recomiendo.

El problema que tengo es encontrar los archivos .sqlite. Las instrucciones y el YouTube dicen que hay que instalar Datasette y apuntarlo contra una base de datos en el portátil. Sé que puedo utilizar el Finder para los archivos, pero me gustaría seguir con youtube.

Alrededor de las 5:31 en su Charla en la PyCon AU , teclea:

mdfind "kMDItemDisplayName ==*.sqlite" -0 | xargs -0 stat "-f%z %N" | sort -nr | head -n 20

Me las arreglé para leer el encantamiento, pero aunque entiendo lo esencial, hay una serie de detalles que las páginas de ayuda de la CLI de Apple no cubren.

Así que, aquí están mis preguntas:

  • ¿Qué es la -0 ¿específicamente? (a diferencia del ejemplo demasiado breve que da Apple)
  • ¿Qué hace xargs -0 stat "-f%z %N" ¿quieres decir?
  • -nr ¿qué son las banderas n y r para ordenar?
  • por último (y probablemente lo has adivinado con orden) lo que es -n ¿bandera para la cabeza?

3voto

hjdm Puntos 18

Hay detalles en man páginas para esos argumentos.

Desde man mdfind :

-0 Imprime un carácter ASCII NUL después de cada ruta de resultados. Esto es útil cuando se utiliza junto con xargs -0 .

Desde man xargs :

-0 Cambiar xargs para esperar NUL (`` \0 '') como separadores, en lugar de espacios y nuevas líneas. Se espera que esto se utilice junto con la función -print0 en find(1).

Desde man stat :

-f formato Muestra la información utilizando el formato especificado. Consulte la sección FORMATOS para ver una descripción de los formatos válidos.

z El tamaño del archivo en bytes.

N Muestra el nombre del archivo.

Desde man sort :

-n , --numeric-sort , --sort=numeric Ordena los campos numéricamente por valor aritmético. Se supone que los campos tienen espacios en blanco opcionales al principio, un signo menos opcional, cero o más dígitos (incluyendo el punto decimal y posibles separadores de miles). separadores de arena).

-r , --reverse Clasificar en orden inverso.

Desde man head :

head [-n count | -c bytes] [file ...] Este filtro muestra las primeras líneas o bytes de cada uno de los archivos especificados

Así que para desglosarlo:

  1. mdfind encuentra todo .sqlite y añade el carácter NUL a cada línea
  2. xargs muestra los resultados en formato NUMBER_OF_BYTES FILE_PATH
  3. sort clasifica los resultados por NUMBER_OF_BYTES descendente
  4. head muestra los 20 primeros resultados

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