¿Cómo obtengo los archivos encontrados por la línea de comandos 'buscar' ordenados por fecha de modificación en OS X?

13

Utilizando la Terminal Mac OS X, ¿cómo escribo un findcomando que ordena los resultados por fecha de modificación (la más reciente primero)?

Ya hay preguntas similares, pero se refieren a GNU findy POSIX, pero no sé si Mac OS X es GNU o POSIX u otra cosa.

zadam
fuente

Respuestas:

16

OS X es totalmente compatible con POSIX .

Algo así debería hacer:

find . -type f -name "*.txt" -print0 | xargs -0 ls -tl

Algunas notas:

  • La -topción en lsse ordenará por mtime.
  • xargsse usa para pasar los nombres de archivo como argumento a ls. Tenga en cuenta que debe usar -print0in findy -0in xargssi tiene archivos con espacios en sus nombres. Además, la cantidad máxima de argumentos está limitada por la ARG_MAXvariable . Para saber cuántos son, ingrese getconf ARG_MAX.
  • Puede suministrar -rpara invertir el orden de clasificación (→ los archivos más antiguos primero)
  • Las otras opciones findy ls, como de costumbre, se describen en los manuales ( man findo man ls).
slhck
fuente
ls -ltrpara revertir el orden.
Daniel Beck
Xe solo los ordenará en grupos de (un poco menos que) ARG_MAXcaracteres de nombre de archivo de esa manera, por supuesto.
JdeBP
Sí, gracias por la incorporación @JdeBP y Daniel. getconf ARG_MAXmostrará ese número.
slhck
Ah, mi problema ahora es que estoy usando este comando en un AppleScript y estaba usando el resultado para leer el contenido de ese archivo. Pero ahora el resultado contiene información de fecha, no solo el nombre del archivo: hacer el script de shell "find / Users / akw / Library / Preferences / ByHost / -name 'com.apple.windowserver *' -print0 | xargs -0 ls -tl | head -1 "devuelve esto ->" -rw ------- @ 1 akw staff 5512 19 de junio 07:52 /Users/akw/Library/Preferences/ByHost//com.apple.windowserver.1FC3A841-2C0C- 5F48-B746-1DEE064F6D12.plist "
zadam
@zadam luego use en ls -tlugar de ls -tl. El -lte da una lista larga que incluye las fechas. No sabía exactamente lo que intentabas hacer, así que lo siento, supuse que también te gustaría verlo mtime.
slhck