selecion entre dos fechas

Imagen de Munote
0 puntos

hola a todos, he mirado por ahi y no consigo saber como listar en consola los archivos por su fecha de modificación, es decir mostrar todos los modificados a partir de una fecha.

 Para que  esto , porque pretendo hacer un backup de mis archivos, pero quiero grabar los archivos modificados y nuevos. Si alguno sabe de un script en bash que ya lo haga y pueda indicarme donde mirarlo o bajarlo.

 

gx  atodos

Imagen de karpoke
+1
0
-1

Podría resultarte más fácil, en lugar de buscar a partir de una fecha, buscar con X días de antigüedad:

find . -mtime -X

En Amalgama de letras hay un post sobre cpio y las copias de seguridad que también podría serte de mucha ayuda.

Por último, si es imprescindible buscar a partir de una fecha, o incluso entre dos fechas, puedes obtener el timestamp de cada una para así pasarle ese número de días al find. En TLPD hay un script que calcula el número de días entre dos fechas bastante completo, y el siguiente script te devuelve un listado de los ficheros modificados desde la fecha dada, si sólo es una, o entre las dos fechas, si son dos:

#!/bin/bash

# Author: karpoke
# Calculate the number of days since a date given in format %Y%m%d
# or between two dates, being the first one older than second
# Ex. days-between 20070430 [20070530]

# Today
TODAY=$(date +%Y%m%d)
echo "Today in YYYYmmdd format: $TODAY"

# Timestamp of today
TS_TODAY=$(date +%s)
echo "Today timestamp: $TS_TODAY"

# Seconds per day
SEC_PER_DAY=86400

# Timestamp of the first given date
TS_DATE1=$(date --date="$1" +%s)
echo "First given date timestamp: $TS_DATE1"

# Timestamp of the second, if any, given date
if [ $2 ]
then
DATE2=$2
TS_DATE2=$(date --date="$DATE2" +%s)
echo "Second given date timestamp: $TS_DATE2"
else
DATE2=$(date +%Y%m%d)
TS_DATE2=$(date +%s)
fi

# Number of days between the given date and today
let "MAX_DAYS = ($TS_TODAY - $TS_DATE1) / $SEC_PER_DAY"
let "MIN_DAYS = ($TS_TODAY - $TS_DATE2) / $SEC_PER_DAY"
echo "Assert: $1 = $(date --date="$MAX_DAYS days ago" +%Y%m%d) & $TODAY - $1 = $MAX_DAYS ?"
if [ $2 ]
then
echo "Assert: $2 = $(date --date="$MIN_DAYS days ago" +%Y%m%d) & $TODAY - $2 = $MIN_DAYS ?"
fi

# List the files modified between MAX_DAYS and MIN_DAYS
echo "Files modified between $(date --date="$1") and $(date --date="$DATE2")"
find . -mtime -$MAX_DAYS ! -mtime -$MIN_DAYS -type f -exec ls -la {} \;
+1
0
-1
Imagen de Munote
+1
0
-1

 gracias , ante todo por contestar, lo he leido ahora , y lo tendre q ver con calma, pero seguro q sirve  

+1
0
-1