您的位置:首页 > 运维架构 > Linux

每天一个linux之touch命令

2015-12-23 14:56 866 查看
linux的touch命令不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件。

文件存在三个时间戳(可用stat查看):

access time:访问时间,简写为atime,读取文件内容
modify time: 修改时间, mtime,改变文件内容(数据)
change time: 改变时间, ctime,元数据发生改变

1.命令格式:
touch [选项]... 文件...
2.命令参数:
-a 或--time=atime或--time=access或--time=use 只更改访问时间戳
-c 或--no-create 不建立任何文档
-m 或--time=mtime或--time=modify 只更改修改时间戳
-t 使用指定的日期时间,而非现在的时间
3.命令功能:
touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间。
4.使用范例:
实例一:创建不存在的文件
命令:
touch log.txt
输出:
[BEGIN] 2015/12/23 13:35:22
[root@localhost ~]# ls
anaconda-ks.cfg  install.log  install.log.syslog  text
[root@localhost ~]# touch log.txt
[root@localhost ~]# ll
total 64
-rw-------. 1 root root  3328 Dec 19 05:42 anaconda-ks.cfg
-rw-r--r--. 1 root root 39935 Dec 19 05:42 install.log
-rw-r--r--. 1 root root  9154 Dec 19 05:39 install.log.syslog
-rw-r--r--  1 root root     0 Dec 23 05:36 log.txt
drwxr-xr-x  3 root root  4096 Dec 22 16:09 text

[END] 2015/12/23 13:36:02
实例二:更改text的访问时间戳
[BEGIN] 2015/12/23 14:07:07
[root@localhost ~]# stat text
File: `text'
Size: 4096      	Blocks: 8          IO Block: 4096   directory
Device: 802h/2050d	Inode: 401425      Links: 3
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2015-12-22 16:10:05.975041002 -0800
Modify: 2015-12-22 16:09:57.538043360 -0800
Change: 2015-12-22 16:09:57.538043360 -0800
[root@localhost ~]# date
Wed Dec 23 06:07:31 PST 2015
[root@localhost ~]# touch -a text
[root@localhost ~]# stat text
File: `text'
Size: 4096      	Blocks: 8          IO Block: 4096   directory
Device: 802h/2050d	Inode: 401425      Links: 3
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2015-12-23 06:07:51.421979327 -0800
Modify: 2015-12-22 16:09:57.538043360 -0800
Change: 2015-12-23 06:07:51.421979327 -0800
[root@localhost ~]# date
Wed Dec 23 06:08:07 PST 2015

[END] 2015/12/23 14:08:00
说明:text的访问时间戳由2015-12-22 16:10:05变更为2015-12-23 06:07:51,跟date的时间同步,因为text的元数据更改,因此text的改变时间也会变更。
实例三:不建立任何文档
命令:
touch -c text
输出
[BEGIN] 2015/12/23 14:13:05
[root@localhost ~]#
[root@localhost ~]# ls
anaconda-ks.cfg  install.log  install.log.syslog  log.txt  text
[root@localhost ~]# touch -c text1
[root@localhost ~]# ls
anaconda-ks.cfg  install.log  install.log.syslog  log.txt  text

[END] 2015/12/23 14:13:29
实例四:
命令:
touch -m text
输出:
[BEGIN] 2015/12/23 14:20:51
[root@localhost ~]# stat text
File: `text'
Size: 4096      	Blocks: 8          IO Block: 4096   directory
Device: 802h/2050d	Inode: 401425      Links: 3
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2015-12-23 06:21:14.894978504 -0800
Modify: 2015-12-22 16:09:57.538043360 -0800
Change: 2015-12-23 06:07:51.421979327 -0800
[root@localhost ~]# touch -m text
[root@localhost ~]# stat text/
File: `text/'
Size: 4096      	Blocks: 8          IO Block: 4096   directory
Device: 802h/2050d	Inode: 401425      Links: 3
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2015-12-23 06:21:14.894978504 -0800
Modify: 2015-12-23 06:21:53.599978353 -0800
Change: 2015-12-23 06:21:53.599978353 -0800

[END] 2015/12/23 14:21:53

说明:text的修改时间戳由2015-12-22 16:09:57变更为2015-12-23 06:21:53,跟date的时间同步,因为text的元数据更改,因此text的改变时间也会变更。

实例五:设置文件的访问时间戳与修改时间戳
命令:
touch -t 201608301830.55 text [b]201608301830.55指的是2016年08月30日18点30分55秒[/b]
[BEGIN] 2015/12/23 14:37:31
[root@localhost ~]# stat text
File: `text'
Size: 4096      	Blocks: 8          IO Block: 4096   directory
Device: 802h/2050d	Inode: 401425      Links: 3
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2015-12-23 06:37:31.563977563 -0800
Modify: 2015-12-23 06:37:31.563977563 -0800
Change: 2015-12-23 06:37:31.563977563 -0800
[root@localhost ~]# touch -t 201608301830.55 text
[root@localhost ~]# stat text
File: `text'
Size: 4096      	Blocks: 8          IO Block: 4096   directory
Device: 802h/2050d	Inode: 401425      Links: 3
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-08-30 18:30:55.000000000 -0700
Modify: 2016-08-30 18:30:55.000000000 -0700
Change: 2015-12-23 06:38:23.520977454 -0800
[END] 2015/12/23 14:38:24

说明:text的访问和修改时间戳由2015-12-23 06:37:31变更为2016-08-30 18:30:55,因为只是设置text的时间戳,因此text的元数据未有改变,因此改变时间戳不会变更。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息