linux 修改 文件 时间 linux获取文件时间

大家好,关于linux 修改 文件 时间很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于linux获取文件时间的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

Linux系统如何修改文件的时间

Linux系统文件创建的时间并不是不能修改的,通过touch命令可以修改文件的时间,从而达到以假乱真的效果。下面就来介绍一下Linux系统如何修改文件的时间。

关于touch命令的描述:

-d,--date=STRING

parse STRING and use it instead of current time

touch的参数说明:

命令参数:

-a或--time=atime或--time=access或--time=use只更改存取时间。

-c或--no-create不建立任何文档。

-d使用指定的日期时间,而非现在的时间。

-f此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。

-m或--time=mtime或--time=modify只更改变动时间。

-r把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。

-t使用指定的日期时间,而非现在的时间。

--no-create不会建立新档案。

--help列出指令格式。

--version列出版本讯息。

此处就使用简单的修改文件时间。

实例:将系统里某些文件修改为三个月前的时间:

当前系统文件信息如下:

[root@case test]# ls-l

total 28

drwxr-xr-x 2 root root 4096 Jan 9 15:47 1333

-rwxrwxr-x 1 oracle oinstall 8143 Jan 9 14:41 3.sh

drwxr-xr-x 2 root root 4096 Jan 9 15:49 444

-rw-r--r-- 1 root root 0 Jan 9 14:41 4.sh

-rwxr-xr-x 1 root root 8143 Jan 9 14:44 77.sh

-rwxrwxr-x 1 root root 54 Jan 9 16:03 find.sh

把所有的.sh文件修改到三个月前(2015年10月13)的时间。操作命令:

[root@case test]# touch-d“10/13/2013”*.sh

结果是:

[root@case test]# ls-l

total 28

drwxr-xr-x 2 root root 4096 Jan 9 15:47 1333

-rwxrwxr-x 1 oracle oinstall 8143 Oct 13 00:00 3.sh

drwxr-xr-x 2 root root 4096 Jan 9 15:49 444

-rw-r--r-- 1 root root 0 Oct 13 00:00 4.sh

-rwxr-xr-x 1 root root 8143 Oct 13 00:00 77.sh

-rwxrwxr-x 1 root root 54 Oct 13 00:00 find.sh

另外也可以单独修改时间或者月份,如下

以使用 am, pm或是 24小时的格式,日期可以使用其他格式如 6 May 2000。

touch-d“6:03pm” file

touch-d“05/06/2000” file

touch-d“6:03pm 05/06/2000” file

在Linux中如何查看文件的修改日期

在Linux系统中,有多种方法可以查看文件的修改日期。首先,"stat"命令是一个强大的工具,只需输入文件名,如"stat filename",它会显示包括访问日期和修改日期在内的详细信息。若仅需查看修改日期,可使用"-c"选项配合"%m"标志,如"stat-c'%y' filename",同样适用于文件夹。

另一种常见方法是利用"date"命令,结合"-r"选项,如"date-r filename",它能显示文件的最后修改时间。如果想要根据文件修改时间排序,"ls-l"命令加上"-t"选项也能做到,它会列出长格式的文件信息,包括修改日期。

对于更高级的HTTP操作,httpie工具可以派上用场。首先确保安装了pip并使用它来安装httpie,如在Centos7/RHEL7中,输入"pip install httpie",在Ubuntu/Deepin/Debian中则为"sudo apt-get install httpie"。安装完毕后,可以通过"httpie "来查看网络上文件的修改时间,只需要替换"file.png"为实际文件地址。

总的来说,Linux提供了多种灵活的手段来获取文件的修改日期,无论是本地文件还是网络文件,都可以通过上述方法轻松查看。

Linux中使用touch命令来修改文件的时间

用法:

touch [选项]...文件...

将每个文件的访问时间和修改时间改为当前时间。

不存在的文件将会被创建为空文件,除非使用-c或-h选项。

如果文件名为-则特殊处理,更改与标准输出相关的文件的访问时间。

长选项必须使用的参数对于短选项时也是必需使用的。

参数:

-a只更改访问时间

-c,--no-create不创建任何文件

-d,--date=字符串使用指定字符串表示时间替代当前时间

-f(忽略)

-h,--no-dereference会影响符号链接本身,替代符号链接所指示的目的地

(当系统支持更改符号链接的所有者时,此选项才有用)

-m只更改修改时间

-r,--reference=文件使用指定文件的时间属性替代当前时间

-t STAMP使用[[CC]YY]MMDDhhmm[.ss]格式的时间替代当前时间

--time=WORD使用WORD指定的时间:access、atime、use都等于-a

选项的效果,而modify、mtime等于-m选项的效果

--help显示此帮助信息并退出

--version显示版本信息并退出

请注意,-d和-t选项可接受不同的时间/日期格式。

例:

touch更新已有文件时间

复制代码

代码如下:

$ ls-l Firefox_wallpaper.png

-rw-r--r-- 1 siu siu 309597 12月 20 15:03 Firefox_wallpaper.png

$ touch Firefox_wallpaper.png

$ ls-l Firefox_wallpaper.png

-rw-r--r-- 1 siu siu 309597 1月 8 15:18 Firefox_wallpaper.png

touch无选项,会同时更新文件的修改时间和访问时间

touch创建文件

复制代码

代码如下:

$ touch demo.c

$ ls-l

总用量 372

-rw-r--r-- 1 siu siu 0 1月 8 15:21 demo.c

touch-at使用参数更新访问时间

首先看看原来的修改时间和访问时间,ls-lu用来查看访问时间

复制代码

代码如下:

$ ls-l

总用量 68

-rw-r--r-- 1 siu siu 66350 12月 23 16:51 hs_err_pid2874.log

$ ls-lu

总用量 68

-rw-r--r-- 1 siu siu 66350 1月 8 15:17 hs_err_pid2874.log

接着是更新过后的修改时间和访问时间

复制代码

代码如下:

$ touch-at 01081010 hs_err_pid2874.log

$ ls-l

总用量 68

-rw-r--r-- 1 siu siu 66350 12月 23 16:51 hs_err_pid2874.log

$ ls-lu

总用量 68

-rw-r--r-- 1 siu siu 66350 1月 8 10:10 hs_err_pid2874.log

可以看到,修改时间没有变动,但是访问时间改变了

touch-m只更新修改时间

复制代码

代码如下:

$ ls-l

总用量 68

-rw-r--r-- 1 siu siu 66350 12月 23 16:51 hs_err_pid2874.log

$ touch-m hs_err_pid2874.log

$ ls-l

总用量 68

-rw-r--r-- 1 siu siu 66350 1月 8 15:31 hs_err_pid2874.log

$ ls-lu

总用量 68

-rw-r--r-- 1 siu siu 66350 1月 8 10:10 hs_err_pid2874.log

由上面的示例可知,此处访问时间没有改变,而修改时间发生了变动

技巧:

1.可以用默认的当前时间来更新文件的访问时间和修改时间,也可以指定参数来更新

2.通常情况下,touch用的最多的地方还是在于创建新文件

阅读剩余
THE END