Mientras sea el propietario del archivo (o raíz), puede cambiar la hora de modificación de un archivo con el touch
comando:
touch filename
De forma predeterminada, esto establecerá la hora de modificación del archivo a la hora actual, pero hay una serie de banderas, como la -d
bandera para elegir una fecha en particular. Entonces, por ejemplo, para configurar un archivo como modificado dos horas antes del presente, puede usar lo siguiente:
touch -d "2 hours ago" filename
Si desea modificar el archivo en relación con su tiempo de modificación existente, lo siguiente debería ser el truco:
touch -d "$(date -R -r filename) - 2 hours" filename
Si desea modificar una gran cantidad de archivos, puede usar lo siguiente:
find DIRECTORY -print | while read filename; do
# do whatever you want with the file
touch -d "$(date -R -r "$filename") - 2 hours" "$filename"
done
Puede cambiar los argumentos para find
seleccionar solo los archivos que le interesan. Si solo desea actualizar los tiempos de modificación de archivos en relación con el tiempo actual, puede simplificar esto para:
find DIRECTORY -exec touch -d "2 hours ago" {} +
Este formulario no es posible con la versión relativa del tiempo de archivo porque usa el shell para formar los argumentos touch
.
En lo que respecta al tiempo de creación, la mayoría de los sistemas de archivos de Linux no realizan un seguimiento de este valor. Hay un ctime
archivo asociado con los archivos, pero realiza un seguimiento de cuándo se modificaron por última vez los metadatos del archivo. Si el archivo nunca tiene sus permisos modificados, puede que retenga el tiempo de creación, pero esto es una coincidencia. Cambiar explícitamente el tiempo de modificación del archivo cuenta como un cambio de metadatos, por lo que también tendrá el efecto secundario de actualizar ctime
.
touch -d "2 hours ago" /path/*.txt
por ejemplo.ctime
no es posible de ninguna manera estándar.ctime
tiempo de cambio de metadatos es de POSIX. No sé si los fragmentos de shell en mi respuesta funcionarían con estrictas utilidades de shell POSIX. Pero definitivamente funcionan en Ubuntu, que es el contexto para las respuestas en este sitio.gtouch
través debrew install coreutils
.Gracias por la ayuda. Esto funcionó para mí:
En la terminal, vaya al directorio para editar la fecha. Luego escriba:
Verá un ">" después de presionar enter, exept por última vez -> "hecho".
Nota: es posible que desee cambiar "201203101513"
"201203101513" = es la fecha que desea para todos los archivos en este directorio.
Ver mi página web
fuente
.ss
donde ss es la cantidad de segundos. (Nota: esto no parece controlar los tiempos de menos de un segundo, como nanosegundos o milisegundos, que para mí solo aparecían como ceros; sin embargo, esta diferencia era permisible para mi caso de uso.)La forma más fácil: acceder y modificar será lo mismo:
Dónde:
Si desea utilizar
NOW
simplemente suelte-t
la marca de tiempo y.Para verificar que todos son iguales:
stat fileName.ext
Ver: tocar hombre
fuente
touch
indicadores condujo a un resultado correcto. La fecha de modificación se ajusta, pero la fecha de cambio y acceso se cambia realmente a AHORAchanged
hora y lasmodified
marcas de tiempo?Touch puede hacer referencia a la fecha de un archivo por sí mismo, sin necesidad de llamar
date
o usar la sustitución de comandos. Aquí hay un poco de la página de información táctil:Por ejemplo, para agregar 8 horas a la fecha de un archivo (nombre de archivo entre
file
comillas solo en caso de espacios, etc.):Usando un bucle sobre todos los archivos en el directorio actual:
Escuché que usar a
*
y dejar quefor
los nombres de los archivos sean más seguros es más seguro , pero usarfind -print0 | xargs -0 touch ...
debería manejar la mayoría de los caracteres locos como líneas nuevas, espacios, comillas y barras diagonales en un nombre de archivo. (PD. Trate de no usar caracteres locos en los nombres de archivo en primer lugar).Por ejemplo, para buscar todos los archivos
thatdir
cuyos nombres de archivo comiencen con uns
, y agregar un día a la marca de tiempo modificada de ese archivo, use:fuente
Este pequeño guión al menos me funciona
fuente
Ha pasado mucho tiempo desde que escribí cualquier tipo de programa Unix, pero accidentalmente configuré el año incorrectamente en un montón de fotos de Navidad, y sabía que si no cambiaba la fecha de 2015 a 2014 sería un problema más adelante. .
Tal vez, esta es una tarea fácil, pero no encontré ninguna forma simple de hacerlo.
Modifiqué un script que encontré aquí, que originalmente se usó para modificar la fecha en menos un mes.
Aquí está el guión original:
Aquí está mi script modificado que forzó la fecha del año "2014":
Ahora me doy cuenta de que podría haber hecho una versión más genérica:
Para usar este archivo necesitaría escribirlo y
ejecutar:
fn = tu-nombre-archivo-que-es-tu-comando
Ejemplo
cambiará la fecha en menos un año en el directorio donde se encuentre.
fuente
solo cambia la fecha y la hora en la configuración. luego guarde su archivo, cambia automáticamente
fuente