从文件名更改文件(图片,视频)时间戳 -- file-system 领域 和 file-transfer 领域 和 file-management 领域 和 media-files 领域 和 bash 领域 android 相关 的问题

Change file (pictures, videos) timestamp from filename


0
vote

问题

中文

当周围移动不同的文件和跨pc /智能手机时,最后修改日期的时间戳通常会重置为移动/复制操作的非常日期。这导致文件在某些​​应用程序(画廊)中是非按时间顺序排序的,特别是尤其适用于图像和视频。

通常,这些文件遵循img_yyyyyymmmd_hhmmss.jpg的命名约定,用于图像和vid_yyyyymmdd_hhmmss.mp4 for video。 所以我考虑了组合 touch 并从文件名中提取字符,时间戳是文件名本身的一部分。

我在 ephestione的hq < / 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或图片目录中将这样的脚本放在顶级DCIM或图片目录中,并在子模d中处理所有图像和视频。当然我扎根了。

英文原文

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} for循环。

应该是:

  #!/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从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" `:查找当前目录中包含"IMG _ .jpg" 的文件(-ttype t)(-mg _ .jpg")和子目录。

j = basename $i :获取文件名(不是整个路径),并将其分配给j。

touch -t $ {j:4:8} $ {J:13:4} $ 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} .

 
 
       
       

相关问题

2  Galaxy S3用于SD卡的文件系统格式  ( Filesystem format used for sd card by galaxy s3 ) 
当我删除由我的Galaxy S3格式化的SD卡,并将其放在MacBook中, fdisk 显示其唯一分区,与具有分区ID 0C 表示它是FAT32 LBA分区。但是,OSX无法安装它,并且Ubuntu似乎将其安装为exfat分区。 此分区上使用的文件系统是什么?可以在分区ID和分区上使用的文件系统之间的差异阻止OS...

5  如何检查文件系统(/ sdcard)进行错误?  ( How to check filesystem sdcard for errors ) 
我想检查我/ sdcard,也可能是其他内部分区,因为文件系统级别的错误。 我想知道如何完成这一点。 我正在使用verizon wireless的三星Galaxy Nexus(Toro)。 更新: 此设备是否有一个实际的SD卡,我相信它是通过:"adb shell" (在系统靴子之前(即恢复模式内)的唯一方法,这...

0  错误地,我从根文件中删除了系统文件夹,我的手机从我的手机中扎根,我的手机无法正常工作?  ( By mistake i deleted system folder from root file and my mobile was rooted from ) 
通过错误,我从根文件中删除了系统文件夹,我的手机从那时起我的手机扎根了我无法正常工作? USB Debbug是OFF FLAH文件找不到"REACH COGENT颜色" PLZZZ帮助我........ ...

9  Android是否具有2.1GB的文件大小限制?  ( Does android have a 2 1gb file size limit ) 
我已经尝试过许多语音录制类型应用程序,我发现的最佳允许我录制到最大文件大小为2.1gb。我可以做这些2.1GB录制中的许多录制,因为我有一个相当大的SD卡。 在我尝试的其中一个应用程序上,开发人员具体说他/她的应用程序没有录音长度限制 所以我的问题,Android是否拥有每个文件的2.1GB限制? ...

0  build.prop修改了。但没有更新系统(例如,在设置中的平板电脑)  ( Build prop modifies okay but not updates in system e g about tablet in settin ) 
我在VirtualBox上运行Android-x86 4.4。一切都很好。 但是,当我用其他制造商或模型修改build.prop(使用es文件资源管理器或buildprop编辑器)并保存它。重新启动后任何发生。关于平板电脑存储旧信息。 似乎是Android缓存此信息某个信息。 任何想法?如何强制android从b...

4  什么时候应该fstrim运行?  ( When should fstrim run ) 
基于这个 cyanogenmod论坛线程,我尝试过通过手动运行FSTIM运行FSTIM,解决CyanogenMod运行CyanogenMod的Galaxy Nexus的应用程序之间的延迟。 root@maguro:/ # fstrim -v /data ...

3  包含病毒的未知文件类型  ( Unknown file type containing a virus ) 
我会尽量保持故事,所以你可以更清楚地了解我的担忧。虽然,我使用Chrome浏览器应用程序在手机上浏览互联网,我收到了我下载文件的通知。通知显示正在下载的文件是一个mp3。 在我甚至有时间做出反应和停止下载过程之前,文件已经在我的手机上。我立即使用手机上的文件管理器从下载文件夹中删除它。但是,我注意到文件格式丢失了。...

2  更换/系统/ bin / toolbox。我如何恢复?  ( Replaced system bin toolbox how to i revert that ) 
我将原始/系统/ bin / toolbox"重命名为" toolbox_alt"。 我用一个应该工作的文件替换了文件/系统/ bin / toolbox,但根本不起作用。 我的FileManagers和最终端的昏迷停止了工作,我显然丢失了root访问权限。 我有一个三星Galaxy Note 3(N9005)(国际...

3  挂载加密仿真AVD userData-qemu.img.qcow2  ( Mount encrypted emulated avd userdata qemu img qcow2 ) 
我正在尝试备份我的AVD。要加快速度,我喜欢制作增量备份。备份 *.img.qcow2 文件效率低下。我希望能够安装驻留在虚拟块设备上的文件系统,然后备份其内容。 我的设备是使用Google服务和播放商店运行Android Oreo 8.1 x86系统映像的模拟Nexus 5x。没有选项不为全磁盘加密userdata...

0  如何知道我的nexus设备是文件加密的?  ( How to know my nexus device is file encrypted ) 
从Android N支持新功能,称为文件加密。 如何识别我的设备是否是文件加密。 如果我使用触摸创建内部/数据典型内的任何新文件。我会在我做LS -L时看到该文件。 在创建文件后,文件名将显示为安全名称,如果设备是加密的文件。 ...

0  如何更改Android的默认密钥按声音?  ( How to change androids default key press sound ) 
手机rooted,我尝试改变文件/ s; /system/media/audio/ui/*.ogg 及其权限; -rw-r--r-- 但仍然播放默认值。重新启动手机也不起作用。我错过了什么? ...

9  如何在SD卡上找到交换分区的路径名?  ( How to find the pathname of the swap partition on sd card ) 
作为 < / a>警告,你不应该在错误的分区上启用交换,或者您可以销毁您的手机: 在我们进一步进一步之前好的!之前的手机有一个分区布局,其中MMCBLCK0是SDCard(外部)我们的手机使用MMCB1CCK1用于外部SD。这很重要,因为如果使用应用程序,它可能会预设使用mmcblck0作为交换分区。使用此设置将导...

30  如何查看android内部分区表?  ( How can i view the android internal partition table ) 
我扎根了我的设备,把它放在恢复模式下,并将其链接到pc by adb shell < / a>。 如何查看存储设备和分区列表? 注意: fdisk 不起作用。 ...

2  在哪里可以在文件系统中找到IP地址(例如proc或sys)  ( Where to find ip address in file system e g proc or sys ) 
是否有一种方法可以在Android文件系统中获取接口的IP(v4)地址?我知道我可以使用ifconfig或netcfg,但我想使用一个监控工具,只能只能访问文件而不是执行命令。 ...

7  如何在Android上取消删除或恢复已删除的文件? [复制]  ( How do i undelete or recover deleted files on android ) 
这个问题已经在这里有答案: 关闭 9年前。 可能的重复: 如何在android上恢复删除的文件? 是否有一种方法可以在不使用标准USB存储恢复工具上恢复删除的文件,而无需使用标准USB存储恢...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.