¿En qué orden están ordenados los fechados? Ciertamente no es un orden alfanumérico.
ls -lt
ordena por tiempo de modificación. Pero necesito tiempo de creación.
files
ls
timestamps
InquilineKea
fuente
fuente
Respuestas:
La mayoría de los unices no tienen un concepto de tiempo de creación de archivos. No puede
ls
imprimirlo porque la información no está registrada. Si necesita tiempo de creación, use un sistema de control de versiones : defina el tiempo de creación como el tiempo de registro.Si su variante de Unix tiene un tiempo de creación, consulte su documentación. Por ejemplo, en Mac OS X (el único ejemplo que conozco), use
ls -tU
. Windows también almacena un tiempo de creación, pero no siempre está expuesto a puertos de utilidades Unix, por ejemplo, Cygwinls
no tiene una opción para mostrarlo. Lastat
utilidad puede mostrar el tiempo de creación, llamado "tiempo de nacimiento" en las utilidades de GNU, por lo que bajo Cygwin puede mostrar archivos ordenados por hora de nacimientostat -c '%W %n' * | sort -k1n
.Tenga en cuenta que ctime (
ls -lc
) no es el tiempo de creación del archivo , es el tiempo de cambio de inodo . El tiempo de cambio de inodo se actualiza cada vez que algo sobre el archivo cambia (contenido o metadatos), excepto que ctime no se actualiza cuando el archivo simplemente se lee (incluso si el atime se actualiza). En particular, el ctime siempre es más reciente que el mtime (tiempo de modificación del contenido del archivo) a menos que el mtime se haya establecido explícitamente en una fecha en el futuro.fuente
ls -c
.ls --help
muestra qué-c
hace cuando se combina con-l
y-lt
.-U
ordena por tiempo de creación. En Solaris 10.x:/usr/bin/ls
no admite-U
,/usr/ucb/ls
admite-U
y ordena por tiempo de creación. Estos resultados obviamente dependen del sistema de archivos que almacena esa información en primer lugar.Desafortunadamente, la
stat(2)
API no proporciona una forma de obtener el tiempo de creación del archivo, ya que no es requerido por los estándares de Unix.Sin embargo, algunos sistemas de archivos, como
ext4
, guardan esta información dentro de los metadatos del archivo. Simplemente no hay una forma estándar de obtenerlo, pero hay una manera (ext
solo sistemas de archivos):Obtendría algo como eso mencionar
crtime
( ¡ noctime
!) Si lo usaext4
.Este comando puede tardar un tiempo en volver, probablemente porque también enumera todas las extensiones relacionadas con el archivo.
Ahora, si desea ordenar los archivos por fecha de creación, supongo que esto no es fácil (ni correctamente) posible. Como dice Gilles , probablemente sería más fácil si usaras un sistema de control de revisión. Pero puede intentar echar un vistazo a la
ext4
API ...Probé el
stat -c '%w' myfile
comando en unext4
sistema de archivos en un sistema Ubuntu (lo suficientemente reciente) sin éxito (solo responde-
).fuente
f='/path/to/file'; debugfs -R "stat $f" $(df $f|(read a; read a b; echo "$a"))|grep crtime
Aquí hay un script de Perl que usa la respuesta de Totor para lograr lo que desea (si su sistema de archivos es ext4).
Funciona en mi máquina doméstica (Ubuntu) y mi servidor (CentOS), pero no se ha probado más allá de eso, así que mmm.
fuente
Use este comando
ls -lct
para ordenar archivos según la fecha de creación.fuente
ctime
tiempo de cambio es, y no crear tiempo.