Alterar arquivo (fotos, vídeos) Timestamp do nome do arquivo -- file-system campo com file-transfer campo com file-management campo com media-files campo com bash camp android Relacionado O problema

Change file (pictures, videos) timestamp from filename


0
vote

problema

português

Ao mover arquivos em torno de DIP DIFERENTE DIFT e através do PC / Smartphone, o Timestamp para a data da última modificação geralmente é redefinido para o muito datetime de operação de movimento / cópia. Isso leva a arquivos não cronologicamente classificados em alguns aplicativos (galeria), bastante irritante, especialmente para imagens e vídeos.

Normalmente, esses tipos de arquivos segue a convenção de nomenclatura do img_yyyymmdd_hhmmss.jpg para imagens e vid_yyyymmdd_hhmmss.mp4 para vídeos. Então pensei em combinar touch e extrair o caractere dos nomes de registro, o registro de data e hora em vigor parte do próprio nome do arquivo.

Eu encontrei este script em HQ de Efestione < / a> for i in IMG*.jpg; do busybox touch -t ${i:4:8}${i:13:4}.${i:17:2} $i; done mas funciona apenas no terminal. Eu tentei fazer um script fora, mas não funciona (veja abaixo)

  #!/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 gostaria de colocar um script como este no diretório DCIM ou imagens de nível superior e ter processado todas as imagens e vídeos nos subdirs. Claro que estou enraizado.

Inglês Original

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 respostas

1
 
vote
vote
Melhor resposta
 

Remover do script o .${i:17:2} para loop.

Deve 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    

Observe que as imagens e vídeos do Whatsapp de acordo com o seu script têm o mesmo tempo 12:34.

editar: para também passar por subdiretórios, altere os loops para a seguinte:

   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     

Explicação:

Encontre. -TYPE FNAME " .mp5" `: Encontre arquivos (-type t) cujos nomes contém" IMG _ .jpg "(-Name" IMG _ *. JPG ") no diretório atual (.) e subdiretórios.

j = basename $i : Obtenha o nome do arquivo (não o caminho inteiro) e atribua-o a J.

toque -t $ {j: 4: 8} $ {J: 13: 4} $ i: altera o tempo de modificação do arquivo com base na data e hora recuperada 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} .

 
 
       
       

Perguntas relacionadas

0  Build.prop modifica ok. Mas não atualizações no sistema (por exemplo, sobre tablet em configurações)  ( Build prop modifies okay but not updates in system e g about tablet in settin ) 
Eu estou executando Android-X86 4.4 na caixa virtual. Tudo funciona bem. Mas quando estou modificando o Build.Prop (com ES File Explorer ou Editor BuildProp) ...

4  Quando o fstrim deve correr?  ( When should fstrim run ) 
com base nisso cyanogenmod fórum thread , eu tentei Para resolver o atraso em executar aplicativos e alternar entre aplicativos no meu Galaxy Nexus executand...

30  Como posso ver a tabela de partição interna do Android?  ( How can i view the android internal partition table ) 
Eu enraizei meu dispositivo, coloque-o no modo de recuperação e ligue-o ao PC por adb shell < / a>. Como posso ver a lista de dispositivos de armazenamento...

2  Formato do sistema de arquivos usado para cartão SD por Galaxy S3  ( Filesystem format used for sd card by galaxy s3 ) 
Quando eu removo o cartão SD que foi formatado pelo meu galaxy s3 a partir dele e colocá-lo em um macbook, fdisk mostra sua única partição como tendo partiç...

9  Como encontrar o nome do caminho da partição swap no cartão SD?  ( How to find the pathname of the swap partition on sd card ) 
como este < / a> adverte, você não deve habilitar a troca na partição errada ou você pode destruir seu telefone: . OK antes de ir mais longe! Os telefones ...

9  O Android tem um limite de tamanho de arquivo de 2.1GB?  ( Does android have a 2 1gb file size limit ) 
Eu tentei muitos aplicativos de tipo de gravação de voz e o melhor que encontrei apenas me permite fazer uma gravação até um tamanho máximo de arquivo de 2.1G...

3  Monte criptografado emulado AVD userdata-qemu.img.qcow2  ( Mount encrypted emulated avd userdata qemu img qcow2 ) 
Estou tentando fazer um backup do meu AVD. Para acelerar as coisas, gosto de fazer backups incrementais. Fazendo backup do ABCDEFGHIJKLMNABCDEFGHIJKLMN0 (s)...

0  Por engano eu deletei a pasta do sistema do arquivo raiz e meu celular estava enraizado a partir do que meu celular não está funcionando O que posso fazer?  ( By mistake i deleted system folder from root file and my mobile was rooted from ) 
Por erro que deletei a pasta do sistema do arquivo raiz e meu celular estava enraizado a partir do que meu celular não está funcionando o que posso fazer? O D...

7  Como faço para undescar ou recuperar arquivos excluídos no Android? [duplicado]  ( How do i undelete or recover deleted files on android ) 
. Esta pergunta já tem respostas aqui : fechado 9 anos atrás . . Duplicado possível: como pos...

2  Onde encontrar endereço IP no sistema de arquivos (por exemplo, proc ou sys)  ( Where to find ip address in file system e g proc or sys ) 
Existe uma maneira de obter o endereço IP (V4) de uma interface no sistema de arquivos do Android? Eu sei que eu poderia usar ifconfig ou netcfg, mas gostaria...

5  Como verificar o sistema de arquivos (/ sdcard) para erros?  ( How to check filesystem sdcard for errors ) 
Eu gostaria de verificar meu / sdcard, e possivelmente outras partições internas, para erros no nível do sistema de arquivos. Eu estou querendo saber como i...

3  Tipo de arquivo desconhecido contendo um vírus  ( Unknown file type containing a virus ) 
Vou tentar manter a história tão curta quanto possível, então você pode ter uma visão mais clara do que é a minha preocupação. Enquanto, eu estava navegando n...

0  Como saber meu dispositivo Nexus é criptografado por arquivo?  ( How to know my nexus device is file encrypted ) 
No Android N Novo recurso chamado criptografia de arquivos é suportado. Como identificar se meu dispositivo é criptografado por arquivo. Se eu criar qualque...

2  Substituído / System / Bin / Toolbox. Como eu reverter isso?  ( Replaced system bin toolbox how to i revert that ) 
Eu renomeei a caixa original / sistema / bin / toolbox "para" toolbox_alt ". Eu substituí o arquivo / sistema / bin / caixa de ferramentas por um arquivo que ...

0  Como alterar a tecla padrão do Android Som de imprensa?  ( How to change androids default key press sound ) 
O telefone está enraizado, eu tentei alterar o arquivo / s; /system/media/audio/ui/*.ogg e suas permissões; -rw-r--r-- Mas ainda reproduz o padr...




© 2021 pergunte.org All Rights Reserved. Casa de perguntas e respostas todos os direitos reservados


Licensed under cc by-sa 3.0 with attribution required.