Linux shell编程学习笔记60:touch命令

打印 上一主题 下一主题

主题 651|帖子 651|积分 1953



0 前言

在csdn技能树Linux入门的训练题中,touch是最常见的一条命令。这次我们就来研究它的用法。
1 touch命令的功能、格式和选项说明

我们可以利用touch --help命令查看touch命令的帮助信息。
  1. [purpleendurer @ bash ~ ]touch --help
  2. Usage: touch [OPTION]... FILE...
  3. Update the access and modification times of each FILE to the current time.
  4. A FILE argument that does not exist is created empty, unless -c or -h
  5. is supplied.
  6. A FILE argument string of - is handled specially and causes touch to
  7. change the times of the file associated with standard output.
  8. Mandatory arguments to long options are mandatory for short options too.
  9.   -a                     change only the access time
  10.   -c, --no-create        do not create any files
  11.   -d, --date=STRING      parse STRING and use it instead of current time
  12.   -f                     (ignored)
  13.   -h, --no-dereference   affect each symbolic link instead of any referenced
  14.                          file (useful only on systems that can change the
  15.                          timestamps of a symlink)
  16.   -m                     change only the modification time
  17.   -r, --reference=FILE   use this file's times instead of current time
  18.   -t STAMP               use [[CC]YY]MMDDhhmm[.ss] instead of current time
  19.       --time=WORD        change the specified time:
  20.                            WORD is access, atime, or use: equivalent to -a
  21.                            WORD is modify or mtime: equivalent to -m
  22.       --help     display this help and exit
  23.       --version  output version information and exit
  24. Note that the -d and -t options accept different time-date formats.
  25. GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
  26. Report touch translation bugs to <http://translationproject.org/team/>
  27. For complete documentation, run: info coreutils 'touch invocation'
  28. [purpleendurer @ bash ~ ]
复制代码

1.1 touch命令的功能

touch命令可以将指定文件的访问时间或修改时间更新为当前时间,
如果指定的文件不存在,touch命令也可以创建出新文件。
1.2 touch命令的格式

  
  1. touch [选项] 文件1 [[文件2] ……]
复制代码
1.3  touch命令的选项

选项功能-a只更改访问时间 -c
--no-create
不创建文件 -d=STRING
--date=STRING
解析 STRING 并利用它来取代当前时间-f可以忽略不利用,是为了与其他 unix 系统的相容性而保留 -h
--no-dereference
影响每个符号链接,而不是任何引用的文件(仅在可以更改符号链接时间戳的系统上有用)-m仅更改修改时间 -r=FILE
--reference=FILE
利用指定文件的时间而不是当前时间-t STAMP 利用 [[CC]YY]MMDDhhmm[.ss] 取代当前时间
其中:
CC 为年份前两位数字
YY 为年份后两位数字
MM 为月份
DD 为日
hh 为小时
mm 为分钟
ss 为秒数
--time=WORD 更改指定时间:
WORD 是 access、atime 或 use:等价于 -a
WORD 是 modify 或 mtime:相当于 -m
--help显示帮助信息并退出--version输出书本信息并退出  2 touch命令实例

2.1 touch test1.txt : 创建文件test1.txt

  1. [purpleendurer @ bash ~ ]ls -l
  2. total 4
  3. drwxr-xr-x 2 csdn csdn 4096 8月   3  2021 Code
  4. [purpleendurer @ bash ~ ]touch test1.txt
  5. [purpleendurer @ bash ~ ]ls -l
  6. total 4
  7. drwxr-xr-x 2 csdn csdn 4096 8月   3  2021 Code
  8. -rw-rw-r-- 1 csdn csdn    0 6月  29 18:25 test1.txt
  9. [purpleendurer @ bash ~ ]
复制代码

我们先利用命令 ls -l 查看当前目次的内容,当前目次中没有文件test1.txt。
以是我们实行命令touch test1.txt时,会主动创建这个文件。
2.2 touch -t 198001020304.05 test1.txt :将文件test1.txt的访问或修改时间改为 1980年1月2日3点4分05秒

  1. [purpleendurer @ bash ~ ]ls -l
  2. total 4
  3. drwxr-xr-x 2 csdn csdn 4096 8月   3  2021 Code
  4. -rw-rw-r-- 1 csdn csdn    0 6月  29 18:34 test1.txt
  5. [purpleendurer @ bash ~ ]touch -t 198001020304.05 test1.txt
  6. [purpleendurer @ bash ~ ]ls -l
  7. total 4
  8. drwxr-xr-x 2 csdn csdn 4096 8月   3  2021 Code
  9. -rw-rw-r-- 1 csdn csdn    0 1月   2  1980 test1.txt
  10. [purpleendurer @ bash ~ ]
复制代码

我们先利用命令 ls -l 查看当前目次的内容,其中test1.txt的日期是6月29日 18:34。
接着我们实行命令touch -t 198001020304.05 test1.txt
再利用命令 ls -l 查看当前目次的内容,其中test1.txt的日期是已变成1980年1月2日 。
2.3 touch --r=test1.txt test2.txt :将文件test2.txt的访问或修改时间改为 test1.txt的时间

  1. [purpleendurer @ bash ~ ]ls -l
  2. total 4
  3. drwxr-xr-x 2 csdn csdn 4096 8月   3  2021 Code
  4. -rw-rw-r-- 1 csdn csdn    0 1月   2  1980 test1.txt
  5. [purpleendurer @ bash ~ ]ls -l
  6. total 4
  7. drwxr-xr-x 2 csdn csdn 4096 8月   3  2021 Code
  8. -rw-rw-r-- 1 csdn csdn    0 1月   2  1980 test1.txt
  9. [purpleendurer @ bash ~ ]touch test2.txt
  10. [purpleendurer @ bash ~ ]ls -l
  11. total 4
  12. drwxr-xr-x 2 csdn csdn 4096 8月   3  2021 Code
  13. -rw-rw-r-- 1 csdn csdn    0 1月   2  1980 test1.txt
  14. -rw-rw-r-- 1 csdn csdn    0 6月  29 18:38 test2.txt
  15. [purpleendurer @ bash ~ ]touch --r=test1.txt test2.txt
  16. [purpleendurer @ bash ~ ]ls -l
  17. total 4
  18. drwxr-xr-x 2 csdn csdn 4096 8月   3  2021 Code
  19. -rw-rw-r-- 1 csdn csdn    0 1月   2  1980 test1.txt
  20. -rw-rw-r-- 1 csdn csdn    0 1月   2  1980 test2.txt
  21. [purpleendurer @ bash ~ ]
复制代码

我们先利用命令 ls -l 查看当前目次的内容,其中文件test1.txt的日期是1980年1月2日,文件test2.txt的日期是6月29日 18:38。
接着我们实行命令touch --r=test1.txt test2.txt
再利用命令 ls -l 查看当前目次的内容,其中test2.txt的日期已变成1980年1月2日,跟test1.txt一样。
2.4 touch --date="2022-01-01 12:00:00" test2.txt :将文件test2.txt的时间改为 2022年1月1日

  1. [purpleendurer @ bash ~ ]ls -l
  2. total 4
  3. drwxr-xr-x 2 csdn csdn 4096 8月   3  2021 Code
  4. -rw-rw-r-- 1 csdn csdn    0 6月  29 18:55 test1.txt
  5. -rw-rw-r-- 1 csdn csdn    0 6月  29 18:55 test2.txt
  6. [purpleendurer @ bash ~ ]touch -d="2022-01-01 12:00:00" test2.txt
  7. touch: invalid date format ‘=2022-01-01 12:00:00’
  8. [purpleendurer @ bash ~ ]touch --date="2022-01-01 12:00:00" test2.txt
  9. [purpleendurer @ bash ~ ]ls -l
  10. total 4
  11. drwxr-xr-x 2 csdn csdn 4096 8月   3  2021 Code
  12. -rw-rw-r-- 1 csdn csdn    0 6月  29 18:55 test1.txt
  13. -rw-rw-r-- 1 csdn csdn    0 1月   1  2022 test2.txt
  14. [purpleendurer @ bash ~ ]
复制代码

我们先利用命令 ls -l 查看当前目次的内容,其中文件test2.txt的日期是6月29日 18:55。
接着我们实行命令touch --date="2022-01-01 12:00:00"
再利用命令 ls -l 查看当前目次的内容,其中test2.txt的日期已变成2022年1月1日。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

冬雨财经

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表