Cambiar archivo (imágenes, videos) Timestamp del nombre de archivo -- file-system campo con file-transfer campo con file-management campo con media-files campo con bash camp android Relacionados El problema

Change file (pictures, videos) timestamp from filename


0
vote

problema

Español

Cuando se mueven archivos alrededor de TRU DIFERENTE Dirs y a través de PC / Smartphone, la marca de tiempo para la última fecha modificada, generalmente se restablece a la operación de DateTime Of Move / Copy. Esto lleva a que los archivos no se clasifiquen cronológicamente en algunas aplicaciones (Galería), bastante molesto, especialmente para imágenes y videos.

Por lo general, este tipo de archivos sigue la convención de nomenclatura de img_yyyymmdd_hhmmss.jpg para imágenes y vid_yyyymmdd_hhmmss.mp4 para videos. Así que pensé en combinar touch y extraer personaje de los nombres de archivos, la marca de tiempo está en efecto parte del nombre de archivo.

Encontré este script en HQ de Ephestione / a> for i in IMG*.jpg; do busybox touch -t ${i:4:8}${i:13:4}.${i:17:2} $i; done Pero solo funciona en terminal. Intenté hacer un guión de él, pero no funciona (ver más abajo)

  #!/system/bin/sh #change timestamp for images filename IMG_YYYYMMDD_HHMMSS.jpg  for i in IMG_*.jpg do     touch -t ${i:4:8}${i:13:4}.${i:17:2} $i done  #change timestamp for whatsapp images IMG-YYYYMMDD-WAnnnn.jpg for i in IMG-*WA*.jpg do     touch -t ${i:4:8}1234 $i done  #change timestamp for videos filename VID_YYYYMMDD_HHMMSS.mp4 for i in VID_*.jpg do     touch -t ${i:4:8}${i:13:4}.${i:17:2} $i done  #change timestamp for whatsapp videos IMG-YYYYMMDD-WAnnnn.mp4 for i in VID-*WA*.mp4 do     touch -t ${i:4:8}1234 $i done   

Idealmente, me gustaría poner un script como este en el directorio DCIM o imágenes de alto nivel y hacerlo procesar todas las imágenes y videos en los Subdirs. Por supuesto que estoy arraigado.

Original en ingles

When moving files around tru different dirs and across PC / smartphone, timestamp for last modified date usually get reset to the very datetime of move / copy operation. This lead to files being non-chronologically sorted in some apps (Gallery), quite annoying especially for Images and Videos.

Usually these kind of files follows the naming convention of IMG_YYYYMMDD_HHMMSS.jpg for Images and VID_YYYYMMDD_HHMMSS.mp4 for Videos. So I thought about combining touch and extracting character from filenames, the timestamp being in effect part of the filename itself.

I found this script at Ephestione's HQ for i in IMG*.jpg; do busybox touch -t ${i:4:8}${i:13:4}.${i:17:2} $i; done but works in terminal only. I tried to make a script out of it but it doesn't work (see below)

#!/system/bin/sh #change timestamp for images filename IMG_YYYYMMDD_HHMMSS.jpg  for i in IMG_*.jpg do     touch -t ${i:4:8}${i:13:4}.${i:17:2} $i done  #change timestamp for whatsapp images IMG-YYYYMMDD-WAnnnn.jpg for i in IMG-*WA*.jpg do     touch -t ${i:4:8}1234 $i done  #change timestamp for videos filename VID_YYYYMMDD_HHMMSS.mp4 for i in VID_*.jpg do     touch -t ${i:4:8}${i:13:4}.${i:17:2} $i done  #change timestamp for whatsapp videos IMG-YYYYMMDD-WAnnnn.mp4 for i in VID-*WA*.mp4 do     touch -t ${i:4:8}1234 $i done 

Ideally I'd like to put a script like this in the top level DCIM or Pictures directory and have it process all the Images and Videos in the subdirs. Of course I'm rooted.

              

Lista de respuestas

1
 
vote
vote
La mejor respuesta
 

Eliminar del script el .${i:17:2} en para bucle.

debería ser:

  #!/system/bin/sh #change timestamp for images filename IMG_YYYYMMDD_HHMMSS.jpg  for i in IMG_*.jpg do     touch -t ${i:4:8}${i:13:4} $i done  #change timestamp for whatsapp images IMG-YYYYMMDD-WAnnnn.jpg for i in IMG-*WA*.jpg do     touch -t ${i:4:8}1234 $i done  #change timestamp for videos filename VID_YYYYMMDD_HHMMSS.mp4 for i in VID_*.jpg do     touch -t ${i:4:8}${i:13:4} $i done  #change timestamp for whatsapp videos IMG-YYYYMMDD-WAnnnn.mp4 for i in VID-*WA*.mp4 do     touch -t ${i:4:8}1234 $i done   

Tenga en cuenta que las imágenes y videos de WhatsApp de acuerdo a su script tienen la misma hora 12:34.

Editar: Para pasar también a través de subdirectorios, cambie los bucles según lo siguió:

   for i in `find . -type f -name "IMG_*..jpg"` do  j=`basename $i`   echo $j  touch -t ${j:4:8}${j:13:4} $i   done    

Explicación:

encontrar. -Tipo F -NAME " .mp5" `: Encuentre archivos (-TyPE T) cuyos nombres contengan" img _ .jpg "(-name" img _ *. jpg ") en el directorio actual (.) y subdirectorios.

J = ABCDEFGHIJKLMNABCDEFGHIJKLMN3 : Obtenga el nombre de archivo (no la ruta completa) y asignelo a j.

Touch -T $ {J: 4: 8} $ {J: 13: 4} $ i: Cambie el tiempo de modificación del archivo según la fecha y la hora recuperadas de $ {J: 4: 8} $ {J: 13: 4}.

 

Remove from the script the .${i:17:2} in for loop.

It should be:

#!/system/bin/sh #change timestamp for images filename IMG_YYYYMMDD_HHMMSS.jpg  for i in IMG_*.jpg do     touch -t ${i:4:8}${i:13:4} $i done  #change timestamp for whatsapp images IMG-YYYYMMDD-WAnnnn.jpg for i in IMG-*WA*.jpg do     touch -t ${i:4:8}1234 $i done  #change timestamp for videos filename VID_YYYYMMDD_HHMMSS.mp4 for i in VID_*.jpg do     touch -t ${i:4:8}${i:13:4} $i done  #change timestamp for whatsapp videos IMG-YYYYMMDD-WAnnnn.mp4 for i in VID-*WA*.mp4 do     touch -t ${i:4:8}1234 $i done 

Note that the images and videos from WhatsApp according to your script have the same time 12:34.

Edit: To also go through subdirectories, change the for loops as followed:

 for i in `find . -type f -name "IMG_*..jpg"` do  j=`basename $i`   echo $j  touch -t ${j:4:8}${j:13:4} $i   done  

Explanation:

find . -type f -name ".mp5"`: find files ( -type t) whose names contains " IMG_.jpg" ( -name "IMG_*.jpg") in the current directory ( . ) and subdirectories.

j= basename $i : Get the filename (not the entire path), and assign it to j.

touch -t ${j:4:8}${j:13:4} $i : Change the file's modification time based on the date and time retrieved from ${j:4:8}${j:13:4} .

 
 
       
       

Relacionados problema

3  Tipo de archivo desconocido que contiene un virus  ( Unknown file type containing a virus ) 
Intentaré mantener la historia lo más corta posible para que pueda tener una visión más clara de cuál es mi preocupación. Mientras, estaba navegando por Inter...

4  ¿Cuándo debería funcionar FSTIM?  ( When should fstrim run ) 
Basado en este Hilo del foro de CyanogenMod , lo intenté Para abordar el retraso en la ejecución de aplicaciones y cambiar entre aplicaciones en mi Galaxy Ne...

0  ¿Cómo saber que mi dispositivo Nexus está encriptado?  ( How to know my nexus device is file encrypted ) 
de Android N Se admite la nueva función llamada Cifrado de archivo. Cómo identificar si mi dispositivo está encriptado. Si creo cualquier archivo nuevo dent...

3  Monte cifrado emulado AVD USERDATA-QEMU.IMG.QCOW2  ( Mount encrypted emulated avd userdata qemu img qcow2 ) 
Estoy tratando de hacer una copia de seguridad de mi avd. Para acelerar las cosas, me gusta hacer copias de seguridad incrementales. Copia de seguridad del A...

5  ¿Cómo revisar los errores del sistema de archivos (/ sdcard)?  ( How to check filesystem sdcard for errors ) 
Me gustaría revisar My / SDCard, y posiblemente también otras particiones internas, para errores en el nivel del sistema de archivos. Me pregunto cómo se po...

2  Dónde encontrar la dirección IP en el sistema de archivos (por ejemplo, PROC o SYS)  ( Where to find ip address in file system e g proc or sys ) 
¿Hay alguna manera de obtener la dirección IP (V4) de una interfaz en el sistema de archivos de Android? Sé que podría usar IFCONFIG o NETCFG, pero me gustarí...

7  ¿Cómo recuperar o recuperar archivos eliminados en Android? [duplicar]  ( How do i undelete or recover deleted files on android ) 
Esta pregunta ya tiene respuestas aquí : CERRADO 9 años . posible duplicado: ¿Cómo puedo r...

0  Build.prop modifica bien. Pero no actualiza en el sistema (por ejemplo, sobre la tableta en la configuración)  ( Build prop modifies okay but not updates in system e g about tablet in settin ) 
Estoy ejecutando Android-X86 4.4 en VirtualBox. Todo funciona bien. Pero cuando estoy modificando a Build.Prop (con ES File Explorer o Editor de BuildProp) co...

0  ¿Cómo cambiar el sonido de la tecla predeterminada de Android?  ( How to change androids default key press sound ) 
El teléfono está enraizado, intenté cambiar el archivo / S; /system/media/audio/ui/*.ogg y sus permisos; -rw-r--r-- pero sigue desempeña el valo...

2  Reemplazo / Sistema / Bin / Toolbox. ¿Cómo revertir eso?  ( Replaced system bin toolbox how to i revert that ) 
Renébamos el nombre del original / Sistema / Bin / Toolbox "a" Toolbox_alt ". Reemplacé el archivo / System / Bin / Toolbox con un archivo que se suponía que ...

9  ¿Android tiene un límite de tamaño de archivo de 2.1GB?  ( Does android have a 2 1gb file size limit ) 
He intentado muchas aplicaciones de tipo de grabación de voz y lo mejor que he encontrado solo me permite hacer una grabación hasta un tamaño máximo de archiv...

0  Por error, eliminé la carpeta del sistema del archivo root y mi móvil estaba enraizado desde entonces, mi móvil no funcionaba, ¿qué puedo hacer?  ( By mistake i deleted system folder from root file and my mobile was rooted from ) 
Por error. Se eliminó la carpeta del sistema del archivo root y mi móvil estaba enraizado desde entonces, mi móvil no funcionaba, ¿qué puedo hacer? El DEBBUG ...

2  Formato de sistema de archivos utilizado para la tarjeta SD por Galaxy S3  ( Filesystem format used for sd card by galaxy s3 ) 
Cuando quite la tarjeta SD que fue formateada por mi Galaxy S3 de ella y la puse en un MacBook, fdisk muestra su partición única como una identificación de ...

9  ¿Cómo encontrar la ruta de la partición de intercambio en la tarjeta SD?  ( How to find the pathname of the swap partition on sd card ) 
como esto < / a> advierte, no debe habilitar el swap en la partición incorrecta o puede destruir su teléfono: OK Antes de que vayamos más lejos! Los teléf...

30  ¿Cómo puedo ver la tabla de particiones internas de Android?  ( How can i view the android internal partition table ) 
He arraigado mi dispositivo, póngalo en el modo de recuperación y lo he vinculado a PC por ADB Shell < / a>. ¿Cómo puedo ver la lista de dispositivos de al...




© 2021 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos