¿Cómo enumero todos los archivos en un directorio y subdirectorios en orden cronológico inverso?
Pregunta
Quiero hacer algo como ls -t
pero también tiene los archivos en subdirectorios incluidos. Pero el problema es que no quiero que la salida se forme como ls -R
lo hace, que es así:
[test]$ ls -Rt
b testdir test
./testdir:
a
Quiero que esté formateado como el find
El comando muestra archivos en subdirectorios. Es decir:
[test]$ find .
.
./b
./test
./testdir
./testdir/a
Pero que find
No parece hacer que ordene el resultado cronológicamente por la última hora de actualización.
Entonces, ¿cómo puedo enumerar todos los archivos en un directorio y subdirectorios, en el formato que find
¿Lo hace, pero en orden cronológico inverso?
Solución
Prueba este:
find . -type f -printf "%T@ %p\n" | sort -nr | cut -d\ -f2-
Otros consejos
ls -lR
es mostrar todos los archivos, directorios y subtirectorios en el directorio de iniciols -lR | more
se usa para mostrar todos los archivos en un flujo.
Si el número de archivos que desea ver se ajusta dentro del límite de argumento máximo, puede usar Globbing para obtener lo que desea, con recursión si tiene soporte de GlobStar.
Para exactamente 2 capas de uso profundo: ls -d * */*
Con Globstar, para uso de la recursión: ls -d **/*
los -d
argumentar ls
le dice que no recurre directorios aprobados como argumentos (ya que está utilizando el shell globbing para hacer la recursión). Esto previene ls
Usando su formato de recursión.
find -type f -print0 | xargs -0 ls -t
Abrazamiento: funciona solo para una cierta cantidad de archivos. Si tiene grandes cantidades de archivos, necesita algo más complicado
Probarfind . -type d
ofind . -type d -ls
prueba esto:
ls -ltraR |egrep -v '\.$|\.\.|\.:|\.\/|total' |sed '/^$/d'
El comando en Respuesta de WFG5475 está funcionando correctamente, solo necesita agregar una cosa para mostrar solo archivos en un directorio y subdirector:
ls -ltraR |egrep -v '\.$|\.\.|\.:|\.\/|total|^d' |sed '/^$/d'
Se agregó una cosa: ^d
Para ignorar todos los directorios de las salidas de listado