Soy muy consciente de poder hacer find myfile.txt -mtime +5
para verificar si mi archivo es anterior a 5 días o no. Sin embargo, me gustaría buscar mtime en días de myfile.txt y almacenarlo en una variable para su uso posterior. ¿Como podría hacerlo?bash - ¿Obtener mtime del archivo específico?
Respuesta
stat
le puede dar esa información:
filemtime=`stat -c %Y myfile.txt`
%Y
le da la última modificación como "segundos desde la época", pero hay muchas otras opciones; more info. Así que si el archivo se ha modificado el 2011-01-22 a las 15:30 GMT, lo anterior podría devolver un número en la región de 1295710237.
Editar: Ah, desea que el tiempo en días desde que se modificó . Eso va a ser más complicado, sobre todo porque un "día" no es un período fijo de tiempo (algunos "días" tienen solo 23 horas, otros 25 — gracias al horario de verano).
La versión ingenua podría tener este aspecto:
filemtime=`stat -c %Y $1`
currtime=`date +%s`
diff=$(((currtime - filemtime)/86400))
echo $diff
... pero de nuevo, esto es suponiendo que un día es siempre exactamente 86.400 segundos de largo.
Más sobre aritmética en bash here.
¿Esto es la respuesta?
A=$(stat -c "%y" myfile.txt)
vistazo a STAT-ayuda
stat --help
Usage: stat [OPTION]... FILE...
Display file or file system status.
[...]
-c --format=FORMAT use the specified FORMAT instead of the default;
output a newline after each use of FORMAT
[...]
The valid format sequences for files
[...]
%y Time of last modification, human-readable
%Y Time of last modification, seconds since Epoch
[...]
AGE=$(perl -e 'print -M $ARGV[0]' $file)
establecerá $ AGE a la edad de archivo $ en día, como operador de Perl -M
se encarga de la stat
llamada y la conversión al día para usted .
El valor de retorno es un valor de punto flotante (por ejemplo, 6.62849537 días). Añadir un int
a la expresión si es necesario tener un resultado entero
AGE=$(perl -e 'print int -M $ARGV[0]' $file)
Ruby y Python también tienen sus chistes a STAT un archivo y volver algunos datos, pero creo que Perl tiene la forma más concisa.
¡Esta es una mejor respuesta que la aceptada! – Anne
- 1. Iphone sdk - Obtener texto localizado del archivo localized.strings específico
- 2. bash filepath al directorio principal del archivo
- 3. firebug - Ocultar estilos del archivo .css específico
- 4. ctime, mtime, holding directory, windows, linux
- 5. línea de ejecución del archivo en bash
- 6. Verificar el tamaño total del archivo de un directorio específico para un usuario específico
- 7. Giro del archivo de registro del script de Bash
- 8. Sintaxis del bash de Bash
- 9. Obtener el directorio de un archivo de script bash en
- 10. Obtener casilla con valor específico
- 11. ¿El tiempo siempre es <= mtime?
- 12. Obtener archivo del archivo JCR Nodo
- 13. Cómo obtener una variable del archivo de texto en la variable Bash
- 14. Cómo acceder a ctime, mtime, ... de un enlace simbólico?
- 15. Script Unix Bash para enarbolar/subrayar/cursiva texto específico
- 16. Linux/Bash, ¿usa ps -o para obtener el proceso por nombre específico?
- 17. Obtener el nombre del archivo MAKE del archivo MAKE
- 18. ¿Cómo puedo obtener el mtime de alta resolución para un enlace simbólico en Perl?
- 19. ¿Cómo obtener la posición del cursor en bash?
- 20. Hg - Encuentra etiquetas que "cubren" la versión del archivo específico
- 21. UNIX/BASH: archivos de listado modificados en el mes específico
- 22. Obtener objeto específico de rdata presentar
- 23. ¿Cómo puedo leer una lista de nombres de archivo de un archivo en bash?
- 24. Cómo leer el archivo MANIFEST.MF del JAR usando Bash
- 25. Bash: eliminar según la fecha del archivo sello
- 26. Bash init - servicio de inicio bajo el usuario específico
- 27. log4j: registro específico del paquete
- 28. Obtenga campos attime, mtime, ctime con precisión de nanosegundo para el archivo (stat?)
- 29. crear archivo binario en bash
- 30. Scripts BASH: archivo whiptail seleccione
Eso fue dulce, desafortunadamente me hice el tonto y olvidé que necesitaba la edad mtime en días. ¿Es eso posible? – Industrial
@Industrial: Una vez que tenga el valor, puede hacer cálculos matemáticos sobre él. No entiendo lo que quieres decir con "... la edad mtime en días". (¿Días desde cuándo? ¿Quiere decir, cuántos días atrás se modificó?) –
Se perdió la parte sobre días, vote +1 – Anders