教你在 Linux 下时光穿梭
时光穿梭?电影里的桥段吧?良许你又在唬人?
非也非也,良许在这里要给大家介绍 touch 命令,有了它你就可以改变时间戳,达到时光穿梭的目的。
touch 命令在我们的工作中使用也相当频繁,我们就由浅到深来详细讲解。
touch 命令基本用法
提起 touch 命令,大家想到的肯定是它的两个用法:
- 改变时间戳
- 创建新文件
这两种用法大家在工作中早已用腻了,良许就不再赘述了。
防止创建文件
如果在 touch 后面直接跟上一个文件名,该文件如果不存在的话,将创建一个相应名字的文件。那么如果我们只想改变文件的时间戳,如果文件不存在时不进行文件创建该怎么做?这里需要加上 -c
选项。
[alvin@VM_0_16_centos test]$ touch -c alvin
[alvin@VM_0_16_centos test]$ ll alvin
ls: cannot access alvin: No such file or directory
仅改变文件访问时间
我们知道,如果不带任何选项执行 touch 命令时,文件的访问时间及修改时间都是同时被改变成当前系统时间。如下所示:
[alvin@VM_0_16_centos test]$ stat fileFile: ‘file’Size: 10 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 371115 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ alvin) Gid: ( 1000/ alvin)
Access: 2019-02-20 14:20:21.154819675 +0800
Modify: 2019-02-20 14:20:21.154819675 +0800
Change: 2019-02-20 14:20:21.191819649 +0800Birth: -
[alvin@VM_0_16_centos test]$ touch file # 在这里使用 touch 命令
[alvin@VM_0_16_centos test]$ stat fileFile: ‘file’Size: 10 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 371115 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ alvin) Gid: ( 1000/ alvin)
Access: 2019-02-20 21:51:24.848774158 +0800 # 文件的访问时间/修改时间均已改成当前系统时间
Modify: 2019-02-20 21:51:24.848774158 +0800
Change: 2019-02-20 21:51:24.848774158 +0800Birth: -
这里使用到 stat 命令,可以查看文件更详细的信息。
如果我们只想改变文件的访问时间,只需加上 -a
选项即可, a 即是单词 access 的缩写。
[alvin@VM_0_16_centos test]$ touch -a file
[alvin@VM_0_16_centos test]$ stat fileFile: ‘file’Size: 10 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 371115 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ alvin) Gid: ( 1000/ alvin)
Access: 2019-02-20 21:56:40.858021859 +0800 # 只有访问时间的时间戳被改变了
Modify: 2019-02-20 21:51:24.848774158 +0800 # 修改时间保持不变
Change: 2019-02-20 21:56:40.858021859 +0800Birth: -
仅改变修改时间
如果我们只想改变文件的修改时间,只需加上 -m
选项即可, m 即是单词 modify 的缩写。
[alvin@VM_0_16_centos test]$ touch -m file
[alvin@VM_0_16_centos test]$ stat fileFile: ‘file’Size: 10 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 371115 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ alvin) Gid: ( 1000/ alvin)
Access: 2019-02-20 21:56:40.858021859 +0800
Modify: 2019-02-20 22:07:39.138701655 +0800
Change: 2019-02-20 22:07:39.138701655 +0800Birth: -
更改为自定义时间戳
不管是不带选项,还是带上 -a
或 -m
选项,都会将文件相应的时间改为当前系统时间戳。那如果我们想改为自定义的时间戳呢?要怎么处理?否则怎么算得上时光穿梭?
我们有两种方法来更改为自定义时间戳。
1. 加上 -t
选项
比如我们将文件的时间戳改为一个将来时间:
[alvin@VM_0_16_centos test]$ touch -t 202001012020.20 file
[alvin@VM_0_16_centos test]$ stat fileFile: ‘file’Size: 10 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 371115 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ alvin) Gid: ( 1000/ alvin)
Access: 2020-01-01 20:20:20.000000000 +0800
Modify: 2020-01-01 20:20:20.000000000 +0800
Change: 2019-02-20 22:13:01.526965566 +0800Birth: -
在这里, -t 后面所带的时间戳的格式为:
[[CC]YY]MMDDhhmm [.SS]
具体来讲,是这样的:
CC - 年份的前两位
YY - 年份的后两位
MM - 月份 [01-12]
DD - 日期 [01-31]
hh - 时 [00-23]
mm - 分 [00-59]
SS - 秒 [00-61]
2. 加上 -d
选项
我们再用新方法将文件的时间戳改成一个过去的时间(2008年奥运会开幕式):
[alvin@VM_0_16_centos test]$ touch -d '08-August-2008' file
[alvin@VM_0_16_centos test]$ stat fileFile: ‘file’Size: 10 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 371115 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ alvin) Gid: ( 1000/ alvin)
Access: 2008-08-08 00:00:00.000000000 +0800
Modify: 2008-08-08 00:00:00.000000000 +0800
Change: 2019-02-20 22:25:47.808490725 +0800Birth: -
在这里,时间的格式为:日-月-年
。但是,这里的时间可以相当灵活,比如也支持 yesterday
、 1 year ago
等等模糊时间:
[alvin@VM_0_16_centos test]$ touch -d 'yesterday 08-August-2008' file
[alvin@VM_0_16_centos test]$ stat fileFile: ‘file’Size: 10 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 371115 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ alvin) Gid: ( 1000/ alvin)
Access: 2008-08-07 00:00:00.000000000 +0800
Modify: 2008-08-07 00:00:00.000000000 +0800
Change: 2019-02-20 22:31:57.564725604 +0800Birth: -
除了更改时间,它还可以改时区。
更改时区,只需在 -d 后面跟上对应的时区就可以。
-----------------
我是良许,世界500强外企 Linux 开发工程师,专业生产 Linux 干货。欢迎关注我的公众号「良许Linux」,回复「1024」获取最新最全的技术资料,回复「入群」进入高手如云技术交流群。
教你在 Linux 下时光穿梭相关推荐
- linux内网穿梭无法使用,教你在 Linux 下时光穿梭
时光穿梭?电影里的桥段吧?良许你又在唬人? 非也非也,良许在这里要给大家介绍 touch 命令,有了它你就可以改变时间戳,达到时光穿梭的目的. touch 命令在我们的工作中使用也相当频繁,我们就由浅 ...
- linux系统如何拨号上网连接,教你在Linux下如何使用ADSL拨号上网
教你在Linux下如何使用ADSL拨号上网 发布时间:2007-10-29 10:22:09来源:红联作者:demon 一.如果是新手刚开始使用Linxu的话,可用图形界面: 办法:直接在网络里建立新 ...
- 教你在Linux下构建主、从域名服务器!
Linux下构建主.从域名服务器 实验背景: 小诺公司目前搭建了邮件服务器.web服务器,现在需要使用Linux搭建一台DNS服务器为上面的服务提供域名解析,考虑到DNS服务器的安全性,还需要搭建 ...
- linux按照mysql为何如此简单_手把手教你在Linux下安装MySQL
在Linux操作系统下,安装MYSQL有两种方式:一种tar安装方式,另外一种是rpm安装方式.这两种安装方式有什么区别呢?尽管我们在Linux下常用tar来压缩/解压缩文件,但MYSQL的tar格式 ...
- 手把手教如何用Linux下IIO设备(附代码)
关注.星标嵌入式客栈,精彩及时送达 [导读] 朋友们,大家好,我是逸珺. 今天分享一下如何在用户空间操作IIO设备.IIO设备能实现很多有价值的应用,有兴趣的一起来看看~ 什么是IIO设备 IIO是 ...
- ipad安装linux模拟器下载文件,教你在linux下安装游戏模拟器
提到游戏模拟器,我想大家不会陌生吧.在Windows下有很多种模拟器,其中最特别的要属MAME了,说它特别,不仅仅是因为它可以模拟上千种街机游戏,更重要的是它是一个跨平台的街机模拟器.这种模拟器除了具 ...
- linux 如何删除log文件,教你在Linux下如何清除系统日志
使用过Windows的人都知道,在使用windows系统的过程中系统会变得越来越慢.而对于Windows下饱受诟病的各种垃圾文件都需要自己想办法删除,不然系统将会变得越来越大,越来越迟钝!window ...
- linux安装tightvnc_谁能教我一下Linux 下tightvnc怎么配置?
展开全部 Linux 下tightvnc的配置方法如下: IIS7服务器管理工具能让你轻32313133353236313431303231363533e59b9ee7ad94313334336436 ...
- 教你修改Linux下高并发socket最大连接数所受的各种限制
1.修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开 文件数量的限制(这是因为系统为 ...
最新文章
- Shell批量SSH免交互登录认证
- 为什么用抽象三层结构
- Python3 文件操作
- 分治法:快速排序,3种划分方式,随机化快排,快排快,还是归并排序快?
- PHP在浏览器中被拒绝请求,php控制请求页面浏览器缓
- Python中的元类及元类实现的单例模式
- 一分钟理解三次握手和四次挥手
- 拼音表大全图_20x11二层带阁楼别墅设计图纸及效果图大全
- 用简道云做一个可以账号密码登陆和找回密码并查询修改已填信息的公开表单
- DOSBOX的安装及ASM文件的编译
- 国际商务谈判 简答题
- 股东转让股权的条件是什么
- 河北计算机软件职业技术学院,河北软件职业技术学院
- java必备英语单词
- 解决阿里云postfix邮件发不出去的问题
- 【笔记】【WPF编程宝典】 第02章 XAML
- python编写程序 计算1_《Python程序设计》——第1章 计算与问题求解简介 1.1 计算与Python简介-阿里云开发者社区...
- 【论文阅读】多模态模型CoCa
- android studio1.2.6,1.2.2 使用Android Studio开发Android APP | 菜鸟教程
- Simsci.Pro_II.8.2_USB加密锁,运行稳定全功能版本\
热门文章
- php结合md5的加密解密,php结合md5实现的加密解密方法_php技巧
- ubuntu编辑网络配置文件后如何保存?
- PDF电子书下载 和 企业物联网实例 视频讲解——实践类
- 【FFmpeg学习】FFmpeg常见的结构体
- 打开浏览器直接开始远程协助!RemoteCall网页版功能介绍
- jq 获取data id属性
- StarRocks极客营 | 90天,17名新晋贡献者,SQL Planner 实战回顾
- 26岁,转行Python,是这辈子最成功的一件事......
- 别贪多 20230308
- win10下安装Ubuntu子系统