Quiero ordenar solo los archivos por fechas de actualización, incluidos los subdirectorios.
Descubrí ls -lrtR | grep ^-. pero no parece ordenar por fechas de actualización.
Y necesito guardar esta lista en un archivo. ¿Es posible?
Apr 01 2010 InsideDoosanServiceImpl.class // in A directory
Apr 08 2010 MainController.class // in B directory
Apr 07 2010 RecommendController.class // in B directory
Apr 01 2010 MainDao.class // in B directory
Quiero decir que toda la lista no está ordenada por fecha, sino que primero se ordena por carpeta y se ordena por fecha.
Quiero una lista ordenada por fecha, incluidos todos los subdirectorios.

ls -lrt.xargsrealización de múltiples llamadasls, ya que los archivos solo se ordenan correctamente dentro de cadalsinvocación pero carecen de un orden global coherente en la salida.Con ls, -R repetirá directorios y -t ordenará por modificación. Sin embargo, atraviesa directorios de forma recursiva y aplica -t a cada directorio. No acumula todos los archivos de todos los directorios y luego los ordena. (Por lo que yo entiendo, esto último es lo que quieres)
Con gnu find (1) puede especificar el formato de salida para incluir el número de segundos desde epoch y el nombre de archivo, luego puede canalizar esto para ordenar (1).
fuente
GNU findayuda. Pero OP funciona enAIXmáquinas, porGNU findlo que no estaba disponible para él.lsque no se pueda hacer que acumule archivos antes de ordenarlos.lses tan rápido en comparación confind.lsyfindlee los mismos datos, así que no puedo imaginar ninguna razón por la que debería ser considerablemente más rápido que encontrar. En mi sistema, encontrar es 5 veces más rápido (buscar en aproximadamente medio millón de archivos)find . -type f -printf "%T@ %Tc %p\n" | sort -n > out.txtproduciendo entradas de salida como1427913836.2330520210 wed 1 apr 2015 20:43:56 ./subdir/file.txt.