【Linux】一步一步学Linux——touch命令(33)

00. 目录

01. 命令概述

touch命令有两个功能:一是创建新的空文件,二是改变已有文件的时间戳属性。

touch命令会根据当前的系统时间更新指定文件的访问时间和修改时间。如果文件不存在,将会创建新的空文件,除非指定了”-c”或”-h”选项。

注意:在修改文件的时间属性的时候,用户必须是文件的属主,或拥有写文件的访问权限。

02. 命令格式

用法:touch [选项]... 文件...

03. 常用选项

不存在的文件将会被创建为空文件,除非使用-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 选项可接受不同的时间/日期格式。

04. 参考示例

4.1 创建新文件

[deng@localhost test]$ touch file
[deng@localhost test]$ ls -l file 
-rw-rw-r-- 1 deng deng 0 7月  13 23:54 file
[deng@localhost test]$ 

4.2 创建多个文件,文件之间以空格分隔

[deng@localhost test]$ touch 20190713.log 20190712.log
[deng@localhost test]$ ls
20190712.log  20190713.log  b  c  d  dir  dir1  file  systemd
[deng@localhost test]$ 

4.3 更改文件的最近访问和最近更改时间

//查看文件的属性信息
[deng@localhost test]$ stat file
  文件:"file"
  大小:0               块:0          IO 块:4096   普通空文件
设备:803h/2051d        Inode:204100131   硬链接:1
权限:(0664/-rw-rw-r--)  Uid:( 1000/    deng)   Gid:( 1000/    deng)
最近访问:2019-07-13 23:54:09.042723645 +0800
最近更改:2019-07-13 23:54:09.042723645 +0800
最近改动:2019-07-13 23:54:09.042723645 +0800
创建时间:-
//修改对应的时间戳
[deng@localhost test]$ touch file
[deng@localhost test]$ stat file
  文件:"file"
  大小:0               块:0          IO 块:4096   普通空文件
设备:803h/2051d        Inode:204100131   硬链接:1
权限:(0664/-rw-rw-r--)  Uid:( 1000/    deng)   Gid:( 1000/    deng)
最近访问:2019-07-13 23:56:10.302949855 +0800
最近更改:2019-07-13 23:56:10.302949855 +0800
最近改动:2019-07-13 23:56:10.302949855 +0800
创建时间:-
[deng@localhost test]$ 

4.4 只更改最近更改时间

[deng@localhost test]$ stat file 
  文件:"file"
  大小:0               块:0          IO 块:4096   普通空文件
设备:803h/2051d        Inode:204100131   硬链接:1
权限:(0664/-rw-rw-r--)  Uid:( 1000/    deng)   Gid:( 1000/    deng)
最近访问:2019-07-13 23:56:10.302949855 +0800
最近更改:2019-07-13 23:56:10.302949855 +0800
最近改动:2019-07-13 23:56:10.302949855 +0800
创建时间:-
[deng@localhost test]$ touch -a file
[deng@localhost test]$ stat file 
  文件:"file"
  大小:0               块:0          IO 块:4096   普通空文件
设备:803h/2051d        Inode:204100131   硬链接:1
权限:(0664/-rw-rw-r--)  Uid:( 1000/    deng)   Gid:( 1000/    deng)
最近访问:2019-07-13 23:57:25.086046773 +0800
最近更改:2019-07-13 23:56:10.302949855 +0800
最近改动:2019-07-13 23:57:25.086046773 +0800
创建时间:-
[deng@localhost test]$

4.5 只更改修改时间

[deng@localhost test]$ stat file 
  文件:"file"
  大小:0               块:0          IO 块:4096   普通空文件
设备:803h/2051d        Inode:204100131   硬链接:1
权限:(0664/-rw-rw-r--)  Uid:( 1000/    deng)   Gid:( 1000/    deng)
最近访问:2019-07-13 23:57:25.086046773 +0800
最近更改:2019-07-13 23:56:10.302949855 +0800
最近改动:2019-07-13 23:57:25.086046773 +0800
创建时间:-
[deng@localhost test]$ touch -m file
[deng@localhost test]$ stat file
  文件:"file"
  大小:0               块:0          IO 块:4096   普通空文件
设备:803h/2051d        Inode:204100131   硬链接:1
权限:(0664/-rw-rw-r--)  Uid:( 1000/    deng)   Gid:( 1000/    deng)
最近访问:2019-07-13 23:57:25.086046773 +0800
最近更改:2019-07-13 23:58:41.835146234 +0800
最近改动:2019-07-13 23:58:41.835146234 +0800
创建时间:-
[deng@localhost test]$ 

4.6 更改文件时间戳

[deng@localhost test]$ touch -t 201907132359.30 file
[deng@localhost test]$ stat file 
  文件:"file"
  大小:0               块:0          IO 块:4096   普通空文件
设备:803h/2051d        Inode:204100131   硬链接:1
权限:(0664/-rw-rw-r--)  Uid:( 1000/    deng)   Gid:( 1000/    deng)
最近访问:2019-07-13 23:59:30.000000000 +0800
最近更改:2019-07-13 23:59:30.000000000 +0800
最近改动:2019-07-13 23:59:44.027226834 +0800
创建时间:-
[deng@localhost test]$ 

4.7 使用指定文件的时间属性替代当前时间

[deng@localhost test]$ ls -l b c 
-rw-rw-r-- 1 deng deng 0 7月  13 23:28 b
-rw-rw-r-- 1 deng deng 0 7月  13 23:28 c
[deng@localhost test]$ ls -l b file 
-rw-rw-r-- 1 deng deng 0 7月  13 23:28 b
-rw-rw-r-- 1 deng deng 0 7月  13 23:59 file

//将文件file的时间戳改为与b文件的时间戳相同
[deng@localhost test]$ touch -r b file
[deng@localhost test]$ ls -l b file
-rw-rw-r-- 1 deng deng 0 7月  13 23:28 b
-rw-rw-r-- 1 deng deng 0 7月  13 23:28 file
[deng@localhost test]$ 

05. 扩展

命令 stat 用于查看文件的相关信息,包含以下三个时间。

最近访问:表示文件访问时间,当文件被读取时会更新这个时间,但是使用 more、less、tail 和 ls 等命令查看时,访问时间不会变。
最近更改:表示文件的修改时间,这指的是文件内容的修改

最近改动:表示文件属性改变时间,比如通过 chmod 命令更改文件属性时,会更新最近改动时间。

touch 命令以 [[CC]YY]MMDDhhmm[.SS] 格式指定新时间戳的日期和时间,相关变量详细信息如下所示:

CC 指定年份的前两位数字(即:世纪数)
YY 指定年份的后两位数字(即:某世纪中的年数)
MM 指定一年的哪一个月,1 ~ 12
DD 指定一年的哪一个天,1 ~ 31
hh 指定一天中的哪一小时,0 ~ 23
mm 指定一小时中的哪一分钟,0 ~ 59
SS 指定一分钟中的哪一秒钟,0 ~ 59

06. 附录

参考:【Linux】一步一步学Linux系列教程汇总

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值