5 votos

Cambiar la fecha de creación del archivo a la fecha de modificación utilizando el terminal

Así que tengo un montón de fotos que han incorrecto fechas de creación, pero su real fechas de creación son las mismas que las actuales fechas de modificación. ¿Es posible corregir esto mediante algunos de los lotes de comandos en la terminal? He estado jugando con el setFile + stat comandos, pero no es realmente trabajando desde que soy terrible con el terminal. ¿Alguien aquí ahora la manera correcta de hacerlo?

También es posible incorporar esto en un comando buscar? Así que todas las fotos con el "IMG" en conseguir este tratamiento, pero no a los demás?

Gracias de antemano!

10voto

Mark Puntos 6

Para usar la respuesta de @ user3439894 con find , use la cláusula -exec command {} + , y coloque el bucle for en un script sh :

 find some/path -iname \*.img -exec sh -c 'for f in "$@"; do m="$(GetFileInfo -m "$f")"; SetFile -m "$m" -d "$m" "$f"; done' sh {} +
 

El segundo "sh" se convertirá en el $ 0 dentro de la concha generada, y los nombres de archivo .img serán los parámetros posicionales $ 1, $ 2, ...

3voto

user3439894 Puntos 5883

Si usted tiene ambos, SetFile y GetFileInfo, se puede establecer la fecha de creación al de la fecha de modificación en .IMG archivos haciendo lo siguiente:

En la Terminal, primero cambie el directorio cd a la ubicación de la meta .IMG archivos.

cd /path/to/target/files

A continuación, ejecute el siguiente comando compuesto:

for f in *.[iI][mM][gG]; do m="$(GetFileInfo -m "$f")"; SetFile -m "$m" -d "$m" "$f"; done

Nota: siempre es una buena idea probar primero en una pequeña muestra de los archivos de destino copiar a otra carpeta y comprobar los resultados de la primera, a continuación, proceder en los archivos originales. También se debe tener siempre normal regular de copias de seguridad antes de continuar, e.g el uso de Time Machine u otro software de copia de seguridad.


Si usted no tiene GetFileInfo y desea utilizar stat, y luego directamente después de la do reemplazar:

m="$(GetFileInfo -m "$f")";

Con:

m="$(stat -f'%Sm' -t "%m/%d/%Y %H:%M:%S" "$f")";

Dando el comando compuesto:

for f in *.[iI][mM][gG]; do m="$(stat -f'%Sm' -t "%m/%d/%Y %H:%M:%S" "$f")"; SetFile -m "$m" -d "$m" "$f"; done

Nota: Esto se supone que tienen al menos una .IMG archivo en el directorio, de lo contrario se provoca un error no fatal, lo que significa que no ha cambiado nada:

stat: *.[iI][mM][gG]: stat: No such file or directory
ERROR: invalid date/time

El uso de find, ver glenn jackman de la respuesta.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X