Изменить файл (картинки, видео) Timestamp от имени файла -- file-system поле с участием file-transfer поле с участием file-management поле с участием media-files поле с участием bash пол android Связанный проблема

Change file (pictures, videos) timestamp from filename


0
vote

проблема

русский

При перемещении файлов вокруг TRU различных Dirs и через ПК / смартфон, Timestamp для последней модифицированной даты обычно получают сброс в очень дате времени перемещения / копирования. Это приводит к файлам, не хронологически отсортированными в некоторых приложениях (галерее), довольно раздражающих специально для изображений и видео.

Обычно эти файлы следует следующим образом соответствующим соглашению IMG_YYYYMMDD_HHMMSS.JPG для изображений и VID_YYYMMDD_HHMMMSS.MP4 для видео. Поэтому я подумал об объединении touch и извлечения символа из файлов имена имена файлов, тометраж от времени наступает в поле зрения самого файла.

Я нашел этот скрипт на HQ Ephestione / a> <Код> for i in IMG*.jpg; do busybox touch -t ${i:4:8}${i:13:4}.${i:17:2} $i; done Но работает только в терминале. Я пытался сделать сценарий из этого, но он не работает (см. Ниже)

 <код> #!/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   

В идеале я хотел бы поставить сценарий, подобный этому в каталоге DCIM или изображения верхнего уровня, и его обрабатывают все изображения и видео в подкладах. Конечно, я укоренился.

Английский оригинал

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.

              

Список ответов

1
 
vote
vote
Лучший ответ
 

Удалить из скрипта <код> .${i:17:2} в цикле.

Это должно быть:

 <код> #!/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   

Обратите внимание, что изображения и видео из WhatsApp в соответствии с вашим сценарием имеют одно и то же время 12:34.

Редактировать: также пройти через подкаталоги, измените циклов для циклов следующим образом:

 <код>  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    

Объяснение:

Найти. -type f -name " .mp5" `: найдите файлы (-type t), имена которых содержит« IMG _ .jpg »(-name" IMG _ *. JPG ") в текущем каталоге (.) и подкаталоги.

j = <код> basename $i : получите имя файла (не весь путь) и назначьте его к j.

touch -t $ {j: 4: 8} $ {j: 13: 8} $ i: измените время модификации файла на основе даты и времени, полученного от $ {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} .

 
 
       
       

Связанный проблема

1  Как изменить подсказку Bash Shell в Cyanogenmod?  ( How to modify bash shell prompt in cyanogenmod ) 
У кого-нибудь был любой успех, модифицирующий приглашение оболочки в Cyanogenmod? В настоящее время # довольно бесполезно, было бы намного приятнее, по крайней...

24  Можно ли активировать настройку Android «USB Tatering» из командной строки?  ( Is it possible to activate the usb tethering android setting from the command ) 
Я хотел бы активировать «USB-привязку» из скрипта Bash, поэтому есть ли возможность запустить командную строку с помощью adb shell , чтобы изменить некоторые...

4  Можно ли запустить FTP сеанс через Bash?  ( Is it possible to start an ftp session via bash ) 
Можно ли запустить сеанс с помощью смартфона Android Samsung Galaxy через Bash Shell для удаленного доступа к файлам? ...

8  Запуск приложений от эмулятора терминала [Закрыто]  ( Running applications from a terminal emulator ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> закрыт. Этот вопрос Off-Topic . В настоящее время он не принимае...

0  Addon.d Bash Script для удаления APKS после ночного перепрошивки на Android 5.1 CM12.1 не работает  ( Addon d bash script for removing apks after nightly reflash on android 5 1 cm12 ) 
Я пытаюсь иметь скрипт Bash в /system/addon.d/, который удаляет нежелательные аппликаторы с ночного Android 5.1 (CM12.1), установила для моей Galaxy Nexus The...

11  Как установить Bash как Shell по умолчанию?  ( How to set bash as default shell ) 
Когда я ADB в устройство с Cyanogenmod, мне представляется хорошая раковина Bash, цветная подсказка и Bashrc. Я не вижу SymLink из / System / Xbin / Bash / Sy...

5  Bash - Как я могу проверить, существует ли компьютер в моей сети без IP (то есть только по имени устройства)?  ( Bash how can i check if a computer exists on my network without ip i e by de ) 
Я хотел бы, чтобы мой телефон выполнил определенные сценарии оболочки через Tasker, если мой телефон находится в той же сети WiFi, что и мой ноутбук. Моя перв...

1  Терминал Bash на таблетках  ( Bash terminal on tablets ) 
Я хотел бы купить планшет и использовать его в качестве нетбука для работы с использованием дока клавиатуры (мне все еще нравятся параметры сенсорного экрана ...

0  Изменить файл (картинки, видео) Timestamp от имени файла  ( Change file pictures videos timestamp from filename ) 
При перемещении файлов вокруг TRU различных Dirs и через ПК / смартфон, Timestamp для последней модифицированной даты обычно получают сброс в очень дате време...

1  Bash-Shell на планшете Android (Transformer Pad TF701T)  ( Bash shell on android tablet transformer pad tf701t ) 
Есть ли способ получить полную работу Bash Shell на Android вместе с эмулятором терминала, который поддерживает аппаратную клавиатуру (немецкий макет)? Хара...