每天一个Linux命令(4)touch命令

     touch命令有两个功能:一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;二是用来创建新的空文件。

 

    (1)用法

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

    (2)功能

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

      2)不存在的文件将会被创建为空文件,除非使用-c 或-h 选项;
    (3)选项参数
      1) -f, --force 忽略不存在的文件,从不给出提示
      2) -i, --interactive 进行交互式删除
      3) -r, -R, --recursive 指示rm将参数中列出的全部目录和子目录均递归地删除
      4) -v, --verbose 详细显示进行的步骤
      5) --help 显示此帮助信息并退出
      6) --version 输出版本信息并退出
      7) -a 只更改访问时间
      8) -d, --date=字符串 使用指定字符串表示时间替代当前时间
      9) -t STAMP 使用[[CC]YY]MMDDhhmm[.ss] 格式的时间替代当前时间
    (4)实例:
      1)[root@localhost /]# touch /home/sunjimeng/Document/touch_test_file     在指定目下创建文件,如果没有指定,则默认在当前文件夹下(若文件已经存在,则可以看作重新更改文件档案时间)        

[root@localhost /]# ls -l /home/sunjimeng/Document
总用量 0
drwxrwxr-x. 3 sunjimeng sunjimeng 17 5月   1 03:13 bin
drwxrwxr-x. 3 sunjimeng sunjimeng 18 5月   1 03:21 Father
[root@localhost /]# touch /home/sunjimeng/Document/touch_test_file
[root@localhost /]# cd home/sunjimeng/Document
[root@localhost Document]# ll
总用量 0
drwxrwxr-x. 3 sunjimeng sunjimeng 17 5月   1 03:13 bin
drwxrwxr-x. 3 sunjimeng sunjimeng 18 5月   1 03:21 Father
-rw-r--r--. 1 root      root       0 5月   1 18:30 touch_test_file    //第一次创建的时间
[root@localhost Document]#

 [root@localhost Document]# touch touch_test_file
 [root@localhost Document]# ll
 总用量 0
 drwxrwxr-x. 3 sunjimeng sunjimeng 17 5月 1 03:13 bin
 drwxrwxr-x. 3 sunjimeng sunjimeng 18 5月 1 03:21 Father
 -rw-r--r--. 1 root root 0 5月 1 18:35 touch_test_file                 //第二次更改文件的时间为当前时间,若文件中存有内容,则内容不变


      2)[root@localhost Document]# touch -t 06061806 touch_test_file    不创建文件,只是更改文档时间(这里加不加-c操作是一样的)

[root@localhost Document]# touch -t 06061806 touch_test_file
[root@localhost Document]# ll
总用量 0
drwxrwxr-x. 3 sunjimeng sunjimeng 17 5月   1 03:13 bin
drwxrwxr-x. 3 sunjimeng sunjimeng 18 5月   1 03:21 Father
-rw-r--r--. 1 root      root       0 6月   6 2016 touch_test_file

      3)[root@localhost Document]# touch touch_test_file1 touch_test_file2    将touch_test_file2的时间更改为与touch_test_file1的时间相同

[root@localhost Document]# touch touch_test_file2
[root@localhost Document]# ll
总用量 0
drwxrwxr-x. 3 sunjimeng sunjimeng 17 5月   1 03:13 bin
drwxrwxr-x. 3 sunjimeng sunjimeng 18 5月   1 03:21 Father
-rw-r--r--. 1 root      root       0 6月   6 2016 touch_test_file      //两个文件时间不相同
-rw-r--r--. 1 root      root       0 5月   1 18:42 touch_test_file2    
[root@localhost Document]# touch -r touch_test_file touch_test_file2
[root@localhost Document]# ll
总用量 0
drwxrwxr-x. 3 sunjimeng sunjimeng 17 5月   1 03:13 bin
drwxrwxr-x. 3 sunjimeng sunjimeng 18 5月   1 03:21 Father
-rw-r--r--. 1 root      root       0 6月   6 2016 touch_test_file     //两个文件时间相同
-rw-r--r--. 1 root      root       0 6月   6 2016 touch_test_file2

      4)[root@localhost Document]# touch -d "10 days ago" touch_test_file2     将当前指定文件时间更改为相对现在的过去或未来时间

[root@localhost Document]# touch -d "10 days ago" touch_test_file2
[root@localhost Document]# ll
总用量 0
drwxrwxr-x. 3 sunjimeng sunjimeng 17 5月   1 03:13 bin
drwxrwxr-x. 3 sunjimeng sunjimeng 18 5月   1 03:21 Father
-rw-r--r--. 1 root      root       0 6月   6 2016 touch_test_file
-rw-r--r--. 1 root      root       0 4月  21 18:48 touch_test_file2           //不是6月6号的10天前,而是当前时间的10天前

      5)[root@localhost Document]# touch --help 与touch --version

[root@localhost Document]# touch --help
用法:touch [选项]... 文件...
Update the access and modification times of each FILE to the current time.

A FILE argument that does not exist is created empty, unless -c or -h
is supplied.

A FILE argument string of - is handled specially and causes touch to
change the times of the file associated with standard output.

Mandatory arguments to long options are mandatory for short options too.
  -a            只更改访问时间
  -c, --no-create    不创建任何文件
  -d, --date=字符串    使用指定字符串表示时间而非当前时间
  -f            (忽略)
  -h, --no-dereference        会影响符号链接本身,而非符号链接所指示的目的地
                (当系统支持更改符号链接的所有者时,此选项才有用)
  -m            只更改修改时间
  -r, --reference=FILE   use this file's times instead of current time
  -t STAMP               use [[CC]YY]MMDDhhmm[.ss] instead of current time
      --time=WORD        change the specified time:
                           WORD is access, atime, or use: equivalent to -a
                           WORD is modify or mtime: equivalent to -m
      --help        显示此帮助信息并退出
      --version        显示版本信息并退出

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

GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
请向<http://translationproject.org/team/zh_CN.html> 报告touch 的翻译错误
要获取完整文档,请运行:info coreutils 'touch invocation'
[root@localhost Document]# touch --version
touch (GNU coreutils) 8.22
Copyright (C) 2013 Free Software Foundation, Inc.
许可证:GPLv3+:GNU 通用公共许可证第3 版或更新版本<http://gnu.org/licenses/gpl.html>。
本软件是自由软件:您可以自由修改和重新发布它。
在法律范围内没有其他保证。

由Paul Rubin、Arnold Robbins、Jim Kingdon、
David MacKenzie 和 Randy Smith 编写。

 

    (5)其他

    说明:

    -t  time 使用指定的时间值 time 作为指定文件相应时间戳记的新值.此处的 time规定为如下形式的十进制数:      

   [[CC]YY]MMDDhhmm[.SS]     

   这里,CC为年数中的前两位,即”世纪数”;YY为年数的后两位,即某世纪中的年数.如果不给出CC的值,则touch   将把年数CCYY限定在1969--2068之内.MM为月数,DD为天将把年数CCYY限定在1969--2068之内.MM为月数,DD为天数,hh 为小时数(几点),mm为分钟数,SS为秒数.此处秒的设定范围是0--61,这样可以处理闰秒.这些数字组成的时间是环境变量TZ指定的时区中的一个时 间.由于系统的限制,早于1970年1月1日的时间是错误的。

原文地址:https://www.cnblogs.com/MenAngel/p/5451936.html