问题描述

有没有办法改变文件被修改/创建的日期(在Nautilus中或者用ls -l命令显示)?理想情况下,我正在寻找一个命令,可以将一大堆文件的日期/时间戳更早或更晚(例如+8小时或-4天等)更改为一定的时间。

最佳解决方法

您可以使用touch命令更改文件的修改时间:

touch filename

默认情况下,这会将文件的修改时间设置为当前时间,但有多个标志,例如-d标志选择特定日期。因此,例如,要将文件设置为在当前两小时前修改,可以使用以下内容:

touch -d "2 hours ago" filename

如果你想修改相对于其现有修改时间的文件,下面应该做的诀窍:

touch -d "$(date -R -r filename) - 2 hours" filename

如果你想修改大量的文件,你可以使用以下内容:

find DIRECTORY -print | while read filename; do

# do whatever you want with the file

touch -d "$(date -R -r "$filename") - 2 hours" "$filename"

done

您可以将参数更改为find以仅选择您感兴趣的文件。如果您只想更新相对于当前时间的文件修改时间,则可以将其简化为:

find DIRECTORY -exec touch -d "2 hours ago" {} +

这种形式对于文件时间相对版本来说是不可能的,因为它使用shell来形成touch的参数。

就创建时间而言,大多数Linux文件系统不会跟踪此值。有一个与文件关联的ctime,但它跟踪文件元数据上次更改的时间。如果文件从未更改权限,则可能会碰巧创建时间,但这是巧合。明确更改文件修改时间将作为元数据更改进行计数,因此也会更新ctime的副作用。

次佳解决方法

谢谢您的帮助。这对我有效:

在终端中转到date-edit的目录。然后键入:

find -print | while read filename; do

# do whatever you want with the file

touch -t 201203101513 "$filename"

done

在您输入完成后,您将看到”>”,最后一次免除 – > “done”。

注意:您可能需要更改”201203101513″

“201203101513” =是此目录中所有文件的所需日期。

第三种解决方法

最简单的方式 – 访问和修改将是相同的:

touch -a -m -t 201512180130.09 fileName.ext

哪里:

-a = accessed

-m = modified

-t = timestamp - use [[CC]YY]MMDDhhmm[.ss] time format

如果你想使用NOW,只需删除-t和时间戳。

验证它们都是一样的:stat fileName.ext

第四种方法

Touch可以单独引用文件的日期,不需要调用date或使用命令替换。以下是touch的信息页面:

`-r FILE' `--reference=FILE'

Use the times of the reference FILE instead of the current time.

If this option is combined with the `--date=TIME' (`-d TIME')

option, the reference FILE's time is the origin for any relative

TIMEs given, but is otherwise ignored. For example, `-r foo -d

'-5 seconds'' specifies a time stamp equal to five seconds before

the corresponding time stamp for `foo'. If FILE is a symbolic

link, the reference timestamp is taken from the target of the

symlink, unless `-h' was also in effect.

例如,为文件的日期添加8个小时(文件名为file,以便在空格等情况下引用):

touch -r "file" -d '+8 hour' "file"

对当前目录中的所有文件使用循环:

for i in *; do touch -r "$i" -d '+8 hour' "$i"; done

我听说使用*并让for选择文件名本身更安全,但使用find -print0 | xargs -0 touch ...应该可以处理大多数疯狂的字符,例如换行符,空格,引号和文件名中的反斜杠。 (PS。首先尽量不要在文件名中使用疯狂的字符)。

例如,要查找thatdir中文件名以s开头并将一天添加到那些文件的修改时间戳的所有文件,请使用:

find thatdir -name "s*" -print0 | xargs -0 -I '{}' touch -r '{}' -d '+1 day' '{}'

第五种方法

这个小脚本至少适用于我

#!/bin/bash

# find specific files

files=$(find . -type f -name '*.JPG')

# use newline as file separator (handle spaces in filenames)

IFS=$'\n'

for f in ${files}

do

# read file modification date using stat as seconds

# adjust date backwards (1 month) using date and print in correct format

# change file time using touch

touch -t $(date -v -1m -r $(stat -f %m "${f}") +%Y%m%d%H%M.%S) "${f}"

done

参考资料

如何修改linux文件生成日期,我如何更改文件的修改/创建日期?相关推荐

  1. 自动修改linux下/etc/sysconfig/network-scripts/ifcfg-ethX网卡文件的脚本

    此脚本修改linux下/etc/sysconfig/network-scripts/ifcfg-ethX网卡文件中的网卡一.网卡二的IP地址(IPADDR).子网掩码(NETMASK)信息 #!/bi ...

  2. U盘加背景图片,改图标,修改字体颜色,把文件夹变彩色,更改文件夹背景

    U盘加背景图片,改图标,修改字体颜色,把文件夹变彩色,更改文件夹背景 改图标: 1.首先选择一个你喜欢的图标,图标的扩展名是:ico. 2.将这个图标文件拷到U盘,并在U盘中新建一个文本文档. 3.在 ...

  3. 如何更改文件夹的图标!如何更改文件的图标!

    在windows系统下,怎样使自己的 文件夹/  文件 等东西,的图标,变的好看. 怎么更改文件夹的图标!如何更改文件的图标! 呵呵 先怎么更改文件夹的图标! 有时候文件夹太多了,想要找到哪个程序的文 ...

  4. Macbook 终端Terminal下如何查看文件生成日期和修改日期

    有时候在用vim命令修改配置文件时,不确定是否被修改,为了与旧版本比较,最好查一下文件生成和修改日期,方法如下: $ GetFileInfo my_file.py file: "/Users ...

  5. ESP32 bin文件生成及多个bin文件合并指南

    文章目录 1. 前言 2. 硬件及分区表 3. 编译 4. 烧录 4.1 使用 idf flash 命令烧录 4.2 使用 Flash Download Tools 工具烧录 4.3 Flash Do ...

  6. python的.py文件生成可运行的exe文件

    使用PyInstaller生成可运行的exe文件 使用第三方库PyInstaller实现.py文件快速生成exe文件可执行文件 (cmd命令行)pyinstaller -F <文件名.py> ...

  7. pb文件生成java类,根据proto文件生成pb和pb_service文件

    假如有一个HelloWorld.proto文件,内容如下: syntax = "proto3"; option java_package = "ex.grpc" ...

  8. android 阻止文件生成方法,禁止软件创建文件夹 禁止创建文件夹

    安卓 怎么阻止软件在文件夹中创建文件 首先说明,Android软件之所以会在文件夹中创建文件,大多数是为了做软件缓存,防止反复的从服务器读取数据,照成用户流量浪费,如果强制的阻止可能会让软件报错. 一 ...

  9. C#如何实现XML文件生成和读取,XML文件的打开方式,解决方案!!!!!!

    以前对XML文件没什么了解,觉得很神奇,其实C#中的XML文件一般就是你们项目下的配置文件,由根节点和子节点组成. 接下来给大家说说XML文件最基础的读取和生成! 以下为C#程序XML文件生成的控制台 ...

最新文章

  1. JVM年轻代,老年代,永久代详解
  2. mysql 代理作业_查看SQLServer 代理作业的历史信息
  3. 使用Data Profile进行数据剖析
  4. ubuntu16.04输入密码后返回登录界面(反复登录问题+.Xauthority无法删除无法改权限问题)
  5. 是时候静下心来学点东西了
  6. python中的def语句_Python def 函数
  7. c++ stl stack_C ++ STL中的stack :: top()函数
  8. vga/dvi/hdmi/dp
  9. 利用膨胀和腐蚀获取图像边缘 matlab实现
  10. 技术不错的我去面试大厂,5分钟,就被秒了!憋屈~
  11. FORTAN中一个表达式多行
  12. 项目操作案例丨西门子PLC通过网关连接ACS800变频器
  13. IDEA常用快捷键总结
  14. charts漏斗图表_用echarts写的转换率图表(漏斗图 + 象形柱图)
  15. 清华月赛 大吉大利晚上吃鸡题解
  16. KubeSphere DevOps 流水线入门指南
  17. 泰坦尼克号第n遍重温泪点
  18. 对京东商品评论进行词频统计并制作词云
  19. 汇编 SHL指令和SHR指令
  20. 如何中文下使用英文标点,但是保留逗号句号。

热门文章

  1. realplayer java,在网页中使用realplayer播放rm文件
  2. 小猿日记(7) - 招标会议篇
  3. fiddler抓包工具:生成证书
  4. gappproxy教育网代理
  5. 高校房产管理系统有哪些功能?
  6. 【dsPIC33E】内部Flash读写
  7. python下载第三方库的时候报错ERROR: Command errored out with exit status 1: python setup.py egg_info Check the
  8. uboot源码下载以及编译
  9. 十款被人忽视的堪称神器的软件【纯干货】
  10. 如何重建深层神经网络的可塑性?