Explicación

Explicación

He olvidado el nombre de un archivo que está en un directorio o en uno de sus subdirectorios. Recuerdo la extensión del archivo (.nb) y sé aproximadamente cuándo se creó. ¿Cómo puedo enumerar todos los archivos con esta extensión en el directorio y subdirectorios actuales junto con sus fechas de creación? Estoy usando Mac OS X.

Respuesta1

La manera fácil de hacer esto es conzsh, que se instala de forma predeterminada en macOS. Esclasificatorios globalesle permite seleccionar y ordenar archivos por marca de tiempo y otros metadatos. Zsh no admite tiempos de creación, pero admite tiempos de modificación y tiempos de cambio de inodo; uno de ellos probablemente coincida con el tiempo de creación.

Esto enumera los 100 ( ) archivos regulares [1,100]( ) más recientes ( ) con la extensión en el directorio actual y sus subdirectorios ( ):om..nb**/

zsh -c 'ls -ltr **/*.nb(.om[1,100])'

Esto enumera los archivos modificados hace entre 7 y 14 días:

zsh -c 'ls -ltr **/*.nb(.m+6m-14)'

Respuesta2

Esto debería lograr lo que deseas.

find . -type f -name '*.nb'|xargs stat -f '%c %N'|sort

Explicación

find . -type f -name '*.nb'busque todos los archivos con extensión .nb.

xargs stat -f '%c %N'Imprima los archivos con la marca de tiempo de Unix en el frente.

sortordénalo.

Respuesta3

Para bash (no mac):

find . -type f -iname '*.nb'| xargs -d '\n' stat -c '%z %N'|sort

busque todas las entradas de tipo 'archivo' en el directorio actual y debajo, que coincidan con el patrón

(-iname para ignorar mayúsculas y minúsculas)

canalizarlo a xargs

(-d '\n' cambia el delimitador al salto de línea para permitir espacios en los nombres de los archivos)

luego a estadística

(-c para formato de salida %z = último cambio de estado %N nombre de archivo citado)

y ordenar la salida

Respuesta4

find -name '*.nb' -exec ls -rtl {} +

Mostrará información detallada sobre todos los archivos que coincidan con el patrón y los ordenará del más antiguo al más nuevo (puede hacerlo del más nuevo al más antiguo eliminando la ropción del lscomando).

Al +final significa que ejecuta el comando al final de la búsqueda en lugar de ejecutarlo para cada coincidencia.

NOTA: esto solo funcionará con una cantidad razonable de coincidencias, si la línea de comando es demasiado larga, lsse dividirá en varios ls, lo que dará como resultado varios subconjuntos ordenados, mientras que la lista completa no se ordenará correctamente (gracias @Gilles y @rudimeier por señalarlo).

información relacionada